2013-07-23 1 views
0

Мой проект работает отлично на моем компьютере под управлением 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

+0

Вы пытались поймать 'Exception', чтобы увидеть, что ошибка? Можете ли вы отлаживать сервер? –

+0

@DavinTryon 'return e.ToString();' не поймает и не вернет его? –

+0

@DavinTryon Мне нужно установить Vs на сервер для отладки на сервере, это мой следующий шаг, так как владельцам сервера не нравилось работать над проектами, которые он хотел сделать, чтобы удалить vs –

ответ

0

Убедитесь, что ваша конфигурация действительна. 500 означает, что конфигурация asp.net недействительна. Попробуйте зарегистрировать asp.net через командный режим в каталоге Microsoft.NET aspnet_regiis.exe -i, а также вы установили ajax toolkit на сервере или скопировали dll dll на свой сервер.

Здесь вы можете проверить код сервера. http://support.microsoft.com/kb/943891

С уважением,

+0

Я обновил сообщение, возвратил значение исключения через предупреждение jquery ajax response.d (и да все время я использовал jQuery/ajax без проблем) –

+0

Вы пытались поместить этот URL-адрес в браузер, который вы используете для публикации, и видите его работоспособность? –

+1

Просто для ясности 500 не означает «только», что конфигурация asp.net недействительна. Это означает, что была ошибка на стороне сервера, которая не была обнаружена. –

 Смежные вопросы

  • Нет связанных вопросов^_^