Я развернул это приложение 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);
Какой код находится в конструкторе ApplicationViewModel? – DavidN