У меня есть основное приложение .NET, к которому подключена служба WCF, в среде dev все работает нормально, но в среде развертывания служба не подключается. Я опубликовал основной проект ASP .NET и разместил его в IIS, опубликованное приложение также содержит файл ConnectedService.json:
{
"ProviderId": "Microsoft.VisualStudio.ConnectedService.Wcf",
"Version": "15.0.20628.921",
"GettingStartedDocument": {
"Uri": "https://go.microsoft.com/fwlink/?linkid=858517"
},
"ExtendedData": {
"Uri": "http://localhost:8759/Design_Time_Addresses/CECWcfServiceLib/CECService/text/mex",
"Namespace": "CEC_WCF_Service",
"SelectedAccessLevelForGeneratedClass": "Public",
"GenerateMessageContract": false,
"ReuseTypesinReferencedAssemblies": true,
"ReuseTypesinAllReferencedAssemblies": true,
"CollectionTypeReference": {
"Item1": "System.Array",
"Item2": "System.Runtime.dll"
},
"DictionaryCollectionTypeReference": {
"Item1": "System.Collections.Generic.Dictionary`2",
"Item2": "System.Collections.dll"
},
"CheckedReferencedAssemblies": [],
"InstanceId": null,
"Name": "CEC_WCF_Service",
"Metadata": {}
}
}
Я получаю ошибку
System.NullReferenceException: Object reference not set to an instance of an object.
at AspNetCore.Views_Home_CEC_Dashboard.ExecuteAsync() in D:\Users\sajja\source\repos\CECDashboard\CECDashboard\Views\Home\CEC_Dashboard.cshtml:line 9
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(IRazorPage page, ViewContext context)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageAsync(IRazorPage page, ViewContext context, Boolean invokeViewStarts)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(ViewContext context)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ActionContext actionContext, IView view, ViewDataDictionary viewData, ITempDataDictionary tempData, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor.ExecuteAsync(ActionContext context, ViewResult result)
at Microsoft.AspNetCore.Mvc.ViewResult.ExecuteResultAsync(ActionContext context)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeResultAsync(IActionResult result)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResultFilterAsync[TFilter,TFilterAsync]()
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResultExecutedContext context)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeResultFilters()
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter()
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync()
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync()
at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
Яотсутствует конфигурация развертывания, потому что она отлично работает в среде разработки.
[ Обновление ] Код в HomeController
public ActionResult CEC_Dashboard()
{
try
{
CEC_WCF_Service.CECServiceClient cECService = new CEC_WCF_Service.CECServiceClient();
var task1 = Task.Run(async () => await cECService.OpenAsync());
task1.Wait();
var task2 = Task.Run(async () => await cECService.GetAccountsAsync());
task2.Wait();
var accountsInfo = task2.Result.ToList();
var task3 = Task.Run(async () => await cECService.GetAccountStatsOnAccountAsync(1));
task3.Wait();
var account_Stats = task3.Result.ToList();
ViewData["Account_Stats"] = account_Stats;
ViewData["accountsInfo"] = accountsInfo;
ViewData["DefaultAccountsView"] = accountsInfo.Find(o => o.AccountId == 1);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return View();
}