Мой проект работает отлично на моем компьютере под управлением Visual Studio 2010 (SP1) WebServerРабота с Entity Framework и Ajax пост не работает после публикации на сервере - 500 внутренняя ошибка сервера
Все проблемы, как обычно, при публикации сервера
сервер: windows2003
Я не думаю, что какие-либо предыдущие попытки запустить Ef раньше в других проектах
Таким образом, в начале я много ошибок относительно ссылок, хотя я ха вам удалось их преодолеть и, наконец, когда все будет установлено в проекте, и я увижу страницу вместо ошибок отладки ... и форма отображается, как только я отправлю,
Когда я отправляю форму (с помощью JQuery/Ajax POST) Я получаю 500 internal server error
даже не зная, что проблема
Обертывание SaveChanges()
с Try Catch
возвращает ничего другого, но эта ошибка 500 внутренний сервер
Опять же, все хорошо на месте, но не тогда, когда опубликовано на сервер
А также единственное изменение из недавних проектов это один использует Entity Framework
В с помощью инструкций
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;
using HtTakalotModel;
//and this last one was added only to try get more info on the error
using System.Data.Entity.Validation;
[WebMethod]
public static string SendCfrm(object SentPars)
{
string newLinw = Environment.NewLine;
var formValues =(Array) SentPars;
string cName = "", cPhone = "", cMail = "", cUrgency = "", cComments = "";
int cLocalSnif = 0;
string RecordsEfected = "";
Dictionary<string, string> MainDataDict = new Dictionary<string, string>();
foreach (Dictionary<string, object> pair in formValues)
{
cName = (string)((object[])pair["value"])[0];
cMail = (string)((object[])pair["value"])[1];
cPhone = (string)((object[])pair["value"])[2];
cUrgency = (string)((object[])pair["value"])[3];
cLocalSnif = ((object[])pair["value"])[4].ToString().ToInt();
cComments = (string)((object[])pair["value"])[5];
}
try
{
using (var dbTakalot = new HtTakalotEntities())
{
var NewTakala = new tblHtTakalot()
{
ClientName = cName,
ClientPhone = cPhone,
ClientMail = cMail,
Urgency = cUrgency,
LocalSnif = cLocalSnif,
CreationDate = DateTime.Now,
TakalaDesc = cComments
};
dbTakalot.tblHtTakalot.AddObject(NewTakala);
RecordsEfected = dbTakalot.SaveChanges().ToString();
}
}
catch (DbEntityValidationException e)
{
return e.ToString();
}
if (RecordsEfected != "1")
return "noGo";
return RecordsEfected;
}
}
также ... побочное замечание: на моей локальной машине я бегу
localhost\projectName\...
на сервере моего проект просто папка в МОМ
Так иерархия
inetPub\wwwroot\App_Code
inetPub\wwwroot\MyProjectName\App_Code
же с web.config
и т.д.
Я предполагаю, что это общая
Мое главное подозрение в том, что что-то не правильно настроен на сервере изначально, чтобы иметь возможность запускать Entity Framework
Мой эфф версия загружается через NuGet (так это V.5)
Обе фреймворки в моем проекте и на сервере установлены в 4.0
Что может быть неправильным, я должен сделать предварительную проверку на сервере?
Должен ли я убедиться, что существует версия .net framework (под 4.x ... update) для поддержки ef?
Пожалуйста, помогите мне здесь свои были 3 часа я изо всех сил пытается решить эту проблему
обновление
после изменения попытке поймать поймать исключение InstEd из DbEntityValidationException
ошибка
System.Data.UpdateException: Произошла ошибка при обновлении записей. Подробнее см. Внутреннее исключение. ---> System.ArgumentException: версия используемого SQL Server не поддерживает тип данных 'datetime2'. в System.Data.SqlClient.TdsParser.TdsExecuteRPC (_SqlRPC [] rpcArray, Int32 timeout, Boolean inSchema, SqlNotificationRequest notificationRequest, TdsParserStateObject stateObj, Boolean isCommandProc) в System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream , Boolean async) в System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, метод String, результат DbAsyncResult) в System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String) в System.Data.SqlClient.SqlCommand.ExecuteReader (поведение CommandBehavior, метод String) в System.Data.SqlClient.SqlCommand.ExecuteDbDataReader (поведение CommandBehavior) в System.Data.Common.DbCommand.ExecuteReader (поведение CommandBehavior) в системе .Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute (переводчик UpdateTranslator, E ntityConnection connection, словарь 2 identifierValues, List
1 сгенерированный Values) в System.Data.Mapping.Update.Internal.UpdateTranslator.Update (IEntityStateManager stateManager, адаптер IEntityAdapter) --- Конец внутренней трассировки стека объектов --- в System.Data.Mapping.Update. Internal.UpdateTranslator.Update (IEntityStateManager stateManager, адаптер IEntityAdapter) в System.Data.EntityClient.EntityAdapter.Update (IEntityStateManager entityCache) в System.Data.Objects.ObjectContext.SaveChanges (опции SaveOptions) в System.Data.Objects.ObjectContext.SaveChanges() в HtTakalot_HtTakalotForm.SendCfrm (Object SentPars) в c: \ Inetpub \ wwwroot \ sell \ HtTakalot \ HtTakalotForm.aspx.cs: строка 56
Вы пытались поймать 'Exception', чтобы увидеть, что ошибка? Можете ли вы отлаживать сервер? –
@DavinTryon 'return e.ToString();' не поймает и не вернет его? –
@DavinTryon Мне нужно установить Vs на сервер для отладки на сервере, это мой следующий шаг, так как владельцам сервера не нравилось работать над проектами, которые он хотел сделать, чтобы удалить vs –