Ich habe eine ASP.NET MVC Ich arbeite an das funktioniert gut, wenn von VS2015 ausgeführt, aber nach der Bereitstellung auf IIS 8.5, bekomme ich den Fehler in Titel beim Zugriff auf Controller, die GET verwenden. Unten gibt es einen Stack-Trace:Index war außerhalb der Grenzen des Arrays - ASP.NET MVC nach der Bereitstellung
[IndexOutOfRangeException: Index was outside the bounds of the array.]
Accounting.Controllers.IesiriController.ShowInvoice(String tipDocument, String seria, Nullable`1 nrDocument, String dataDocument, String clientName) +12673
lambda_method(Closure , ControllerBase , Object[]) +352
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +229
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +35
System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +39
System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +67
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() +72
System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +385
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +38
System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +185
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +38
System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +29
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +65
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +52
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +36
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +38
System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +43
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +65
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +38
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +656
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +143
Zielframework ist 4,5 Ich habe keine Ahnung, warum dies geschieht ...
UPDATE (unten wird der ShowInvoice Code):
public ActionResult ShowInvoice(string tipDocument, string seria, int? nrDocument, string dataDocument, string clientName)
{
//get company data
ViewBag.CompanyName = System.Configuration.ConfigurationManager.AppSettings["CompanyName"];
ViewBag.CodFiscal = System.Configuration.ConfigurationManager.AppSettings["CodFiscal"];
ViewBag.NrRegCom = System.Configuration.ConfigurationManager.AppSettings["NrRegCom"];
ViewBag.Adresa = System.Configuration.ConfigurationManager.AppSettings["Adresa"];
ViewBag.Adresa2 = System.Configuration.ConfigurationManager.AppSettings["Adresa2"];
ViewBag.IBAN = System.Configuration.ConfigurationManager.AppSettings["IBAN"];
ViewBag.Banca = System.Configuration.ConfigurationManager.AppSettings["Banca"];
if ((tipDocument == null) || (seria == null) || (nrDocument == null) || (dataDocument == null))
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
string dataDoc2 = dataDocument.Split(' ')[0];
string dataDoc = dataDoc2.Split('/')[1] + "/" + dataDoc2.Split('/')[0] + "/" + dataDoc2.Split('/')[2];
string dataDocTVA = dataDoc2.Split('/')[2] + "-" + dataDoc2.Split('/')[0] + "-" + dataDoc2.Split('/')[1];
//get Note
string queryNote = "SELECT TOP(1) * FROM Iesiris i "
+ "INNER JOIN Clients c ON i.ClientID = c.ID "
+ "INNER JOIN Articoles a ON i.ArticolID = a.ID "
+ "INNER JOIN SeriiFacturis s ON i.SeriaID = s.ID "
+ "WHERE i.NrDocument = " + nrDocument + " AND i.DataDocument = '" + dataDocument + "' AND s.Seria = '" + seria + "'";
var returnedNote = db.Database.SqlQuery<IesiriVMDetails>(queryNote).ToList();
ViewBag.note = returnedNote[0].Note;
int ClientID = returnedNote[0].ClientID;
//get date delegat
ViewBag.Delegat = returnedNote[0].Delegat;
ViewBag.DelegatSeria = returnedNote[0].DelegatSeria;
ViewBag.DelegatNumar = returnedNote[0].DelegatNumar;
ViewBag.DelegatEliberat = returnedNote[0].DelegatEliberat;
ViewBag.DelegatAuto = returnedNote[0].DelegatAuto;
//get emis de
ViewBag.fullName = returnedNote[0].EmisDe;
ViewBag.ci = returnedNote[0].CI;
//get date client
string queryClient = "SELECT TOP(1) * FROM Clients WHERE ID = " + ClientID;
var returnedClient = db.Database.SqlQuery<Clients>(queryClient).ToList();
if (returnedClient[0].VatPayer == true)
{
ViewBag.codFiscal = "RO" + returnedClient[0].FiscalCode;
}
else
{
ViewBag.codFiscal = returnedClient[0].FiscalCode;
}
/*
//get user data
string queryUser = "SELECT TOP(1) * FROM AspNetUsers WHERE UserName = '" + User.Identity.Name + "'";
var returnedUser = db.Database.SqlQuery<Users>(queryUser).ToList();
ViewBag.fullName = returnedUser[0].FirstName + " " + returnedUser[0].LastName;
ViewBag.ci = returnedUser[0].CI;
*/
ViewBag.nrRegCom = returnedClient[0].Regnumber;
ViewBag.adresa = returnedClient[0].Address;
ViewBag.contBancar1 = returnedClient[0].BankAcc1;
ViewBag.banca1 = returnedClient[0].BankName1;
string scadenta = returnedNote[0].ScadentaDocument.ToString();
string scadentaDoc2 = scadenta.Split(' ')[0];
ViewBag.scadentaDocument = scadentaDoc2.Split('/')[1] + "/" + scadentaDoc2.Split('/')[0] + "/" + scadentaDoc2.Split('/')[2];
ViewBag.tipDocument = tipDocument;
ViewBag.dataDocument = dataDoc;
ViewBag.nrDocument = nrDocument;
ViewBag.seria = seria;
ViewBag.clientName = clientName;
string query = "SELECT * FROM Iesiris i "
+ "INNER JOIN Clients c ON i.ClientID = c.ID "
+ "INNER JOIN Articoles a ON i.ArticolID = a.ID "
+ "INNER JOIN SeriiFacturis s ON i.SeriaID = s.ID "
+ "WHERE i.NrDocument = " + nrDocument + " AND i.DataDocument = '" + dataDocument + "' AND s.Seria = '" + seria + "'";
IEnumerable<IesiriVMDetails> data = db.Database.SqlQuery<IesiriVMDetails>(query);
//get Total and total TVA
decimal total = data.Sum(item => item.Valoare);
decimal totalTVA = data.Sum(item => item.ValoareTVA);
ViewBag.totalGeneral = total + totalTVA;
ViewBag.total = total;
ViewBag.totalTVA = totalTVA;
//verifica TVA la incasare vanzator pentru adaugarea notei
int cui = Int32.Parse(returnedClient[0].FiscalCode.ToString());
RTVAI.IService1 obj_rtvai = new RTVAI.Service1Client();
string tvaIncasare = obj_rtvai.checkVATonCollection(cui, dataDocTVA);
if (tvaIncasare == "DA")
{
ViewBag.TVAincasare = "TVA la incasare";
}
return View(data.ToList());
}
Ich frage mich, warum das perfekt funktioniert, wenn in debug ausgeführt .... Sobald ich diesen Fehler, mit anderen Aktionen auch ... bekomme, die die ShowInvoice
posten Sie Ihre 'ShowInvoice' ActionMethod auch – adiga
Sehr zweifelhaft, dass dies ein Problem im Zusammenhang mit Bereitstellung-ID-Wette ist es im Zusammenhang mit dem Code, der geschrieben wurde und wird ausgeführt wird - bitte schreiben Sie den Code, der die Ausnahme wirft – GregH
I habe die Frage mit dem Code aktualisiert –