0

Я развернул это приложение MVC на своем локальном хосте (на моей машине, работающей под управлением Windows 8), и работает так, как ожидалось. Единственная разница между моей папкой установки и той, которая находится на сервере, - это строка подключения. Но когда я пытаюсь установить его на компьютере-сервере (Windows Server 2008) я получаю эту странную ошибку:Проблемы с развертыванием приложения MVC 4 в Windows Server 2008

[NullReferenceException: Object reference not set to an instance of an object.] PicknikMVC.ViewModels.ApplicationViewModel..ctor(Application app) in c:\Builds\workspace\Picknik\AppStoreService\target\checkout\AppStoreService\PicknikMVC\ViewModels\Application\ApplicationViewModel.cs:23 PicknikMVC.Controllers.Application.ShowController.Execute(String appid) in c:\Builds\workspace\Picknik\AppStoreService\target\checkout\AppStoreService\PicknikMVC\Controllers\Application\ShowController.cs:59 lambda_method(Closure , ControllerBase , Object[]) +126 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary 2 параметров) +247 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod (ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary 2 parameters) +38 System.Web.Mvc.Async.<>c__DisplayClass39.<BeginInvokeActionMethodWithFilters>b__33() +119 System.Web.Mvc.Async.<>c__DisplayClass4f.<InvokeActionMethodFilterAsynchronously>b__49() +452 System.Web.Mvc.Async.<>c__DisplayClass37.<BeginInvokeActionMethodWithFilters>b__36(IAsyncResult asyncResult) +15 System.Web.Mvc.Async.<>c__DisplayClass2a.<BeginInvokeAction>b__20() +31 System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult) +230 System.Web.Mvc.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult) +28 System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +15 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +53 System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +15 System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult) +42 System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +15 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288

Код в приложении, где это происходит, в основном создает экземпляр нового объекта определенного класса с некоторой информацией из базы данных. Вы видите какую-либо очевидную проблему? Может быть, проблема с строкой соединения или это что-то еще ?

AppViewModel:

public class ApplicationViewModel 
{ 
    public int App_ID { get; set; } 

    public string Title { get; set; } 

    public string Developer { get; set; } 

    public string DeveloperURL { get; set; } 

    public bool IsImportant { get; set; } 

    public IEnumerable<ScreenshotPairViewModel> Screenshots { get; set; } 

    public ApplicationViewModel(PicknikData.Application app) 
    { 
     App_ID = app.App_ID; 
     Title = app.Title; 
     Developer = app.Developer; 
     DeveloperURL = app.DeveloperURL; 
     if (app.IsImportant.HasValue) 
     { 
      IsImportant = app.IsImportant.Value; 
     } 

     Screenshots = app.ScreenshotURLs.Select(p => new ScreenshotPairViewModel(p.Screenshot_URL,p.FK_Device)).ToList(); 

    } 
} 

и код для контроллера:

viewModel.Application = new ApplicationViewModel(app); 
+0

Какой код находится в конструкторе ApplicationViewModel? – DavidN

ответ

1

Трудно сказать, из информации, предоставленной, но я буду иметь Баш на помощь.

Если строка соединения отличается, я предполагаю, что данные могут быть слишком.

Когда вы видите объект, который не установлен, он обычно не создается в коде. Однако в этом случае это могут быть данные. Предполагая, что все где-то создается, возможно, нет скриншотов? Сообщение об ошибке указывает на ошибку лямбда, поэтому я предполагаю, что она относится к оператору select.

+0

Я думаю, что нет, потому что все происходит из базы данных, которая заполнена. Проблема, которую я вижу, заключается в том, что она не извлекает любые записи из базы данных (из-за проблемы со строкой соединения), но в этом случае я не должен получать другую ошибку - возможно, что-то вроде «Ошибка доступа к базе данных» – Wosh

+0

Забыл сказал, что данные одинаковы (потому что он переносится из моего db на сервер один) – Wosh

+0

ну в конце кажется, что что-то не так с строкой соединения. – Wosh

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