6

Po uruchomieniu przeglądarki BrowserLink dla mojej aplikacji ASP.Net Core 1.1 pojawia się następujący błąd w przeglądarce i myślę, że z tego powodu BrowserLink nie działa.BrowserLink nie działa w środowisku ASP.NET Core w Visual Studio 2017 RTM

Browser Link: Exception thrown when trying to invoke Browser Link extension callback "microsoft.visualstudio.web.browserlink.sourcemappingextensionfactory.getCssMappingData": 
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object. 
    at Microsoft.VisualStudio.Web.Extensions.Common.Helpers.VsWebUrlUtil.EnsureAbsoluteUrl(IVsHierarchy hierarchy, Uri& path) 
    at Microsoft.VisualStudio.Web.Extensions.Common.Helpers.VsWebUrlUtil.GetSimpleVsWebUrlFromUrl(IVsHierarchy hierarchy, Uri url, ILocationContainer& container) 
    at Microsoft.VisualStudio.Web.Extensions.Common.Helpers.VsWebUrlUtil.GetVsWebUrlFromUrl(IVsHierarchy hierarchy, Uri url) 
    at Microsoft.VisualStudio.Web.Extensions.Common.Helpers.LazyLocationContainer.LazyLocationContainerFromUrl.CreateActualLocationContainer() 
    at Microsoft.VisualStudio.Web.Extensions.Common.Helpers.LazyLocationContainer.GetPhysicalPath(Uri& physicalPath) 
    at Microsoft.VisualStudio.Web.Extensions.Common.Helpers.DocumentLocation.Microsoft.VisualStudio.Web.Extensions.Common.Helpers.IDocumentLocation.GetPhysicalPath(Uri& physicalPath) 
    at Microsoft.VisualStudio.Web.BrowserLink.SourceMappingExtension.getCssMappingData(String cssUrl, String[] selectors) 
    --- End of inner exception stack trace --- 
    at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 
    at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 
    at Microsoft.VisualStudio.Web.BrowserLink.ClientMessaging.DispatchMessage(BrowserLinkConnection connection, MessageArgs obj) 

Browser Link: Exception thrown when trying to invoke Browser Link extension callback "microsoft.visualstudio.web.browserlink.autosyncextensionfactory.trackCssDocuments": 
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object. 
    at Microsoft.VisualStudio.Web.Extensions.Common.Helpers.VsWebUrlUtil.EnsureAbsoluteUrl(IVsHierarchy hierarchy, Uri& path) 
    at Microsoft.VisualStudio.Web.Extensions.Common.Helpers.VsWebUrlUtil.GetSimpleVsWebUrlFromUrl(IVsHierarchy hierarchy, Uri url, ILocationContainer& container) 
    at Microsoft.VisualStudio.Web.Extensions.Common.Helpers.VsWebUrlUtil.GetVsWebUrlFromUrl(IVsHierarchy hierarchy, Uri url) 
    at Microsoft.VisualStudio.Web.Extensions.Common.Helpers.LazyLocationContainer.LazyLocationContainerFromUrl.CreateActualLocationContainer() 
    at Microsoft.VisualStudio.Web.Extensions.Common.Helpers.LazyLocationContainer.GetPhysicalPath(Uri& physicalPath) 
    at Microsoft.VisualStudio.Web.Extensions.Common.Helpers.DocumentLocation.Microsoft.VisualStudio.Web.Extensions.Common.Helpers.IDocumentLocation.GetPhysicalPath(Uri& physicalPath) 
    at Microsoft.VisualStudio.Web.Extensions.Common.Helpers.DocumentLocation.Microsoft.VisualStudio.Web.Extensions.Common.Helpers.IDocumentLocation.get_PhysicalFileExists() 
    at Microsoft.VisualStudio.Web.BrowserLink.AutoSyncExtension.trackCssDocuments(String[] trackHrefs, String[] untrackHrefs) 
    --- End of inner exception stack trace --- 
    at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 
    at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 
    at Microsoft.VisualStudio.Web.BrowserLink.ClientMessaging.DispatchMessage(BrowserLinkConnection connection, MessageArgs obj) 

Browser Link: Failed to invoke return value callback: 
TypeError: Cannot read property 'files' of null 

mam skonfigurowany mojej aplikacji następująco:

.csproj config:

<ItemGroup> 
    <PackageReference Include="AutoMapper" Version="5.2.0" /> 
    <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="1.2.0" /> 
    <PackageReference Include="BundlerMinifier.Core" Version="2.4.337" /> 
    <PackageReference Include="IdentityModel" Version="2.5.1" /> 
    <PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" /> 
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" PrivateAssets="All" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.1.1" PrivateAssets="All" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.0" PrivateAssets="All" /> 
    <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.Extensions.Logging" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.1.0" PrivateAssets="All" /> 
    <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.0" /> 
    <PackageReference Include="Serilog.Extensions.Logging.File" Version="1.0.0" /> 
</ItemGroup> 

<ItemGroup> 
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" /> 
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0" /> 
</ItemGroup> 

<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish"> 
    <Exec Command="bower install" /> 
    <Exec Command="dotnet bundle" /> 
</Target> 

iw pliku Startup.cs w metodzie Konfiguracja nazwałem app.UseBrowserLink();.

UPDATE

Wydaje się, że błąd jest związany z plików * .css. Jeśli usunąć wszystkie moje linki CSS mam tylko następujący błąd:

Browser Link: Failed to invoke return value callback: 
TypeError: Cannot read property 'files' of null 
+1

mam ten sam problem. Tymczasowym rozwiązaniem dla mnie było wyłączenie łącza Browser poprzez usunięcie 'app.UżytkownicyBrowserLink();' w moim pliku 'Startup.cs'. Jednak poprawna poprawka byłaby miła ... – user2657943

+1

W sprawie github otworzyłem problem. https://github.com/aspnet/Tooling/issues/1015 – mrtaikandi

Odpowiedz

1

naprawiłem ten problem poprzez usunięcie pakietu domyślnym browserlink

Microsoft.VisualStudio.Web.BrowserLink

i instalowanie

Microsoft.VisualStudio.Web.BrowserLink.Loader

Ten pakiet został wymienione w tym guide from Microsoft docs. Nie jestem pewien, na czym polega różnica, ale wydaje mi się, że rozwiązałem moje problemy.

0

Najpierw wylądowałem na tym wątku, szukając poprawki dla łącza przeglądarki w .NET Core z VS2017.

All I Brakowało

app.UseBrowserLink(); 

w metodzie Startup.cs Configure.

Zobacz Browser Link with ASP.NET Core v1.0 in Visual Studio 2015 Update 3

(Jest to prawdopodobnie lepiej nadaje się jako komentarz, ale nie mam wystarczająco dużo rep.)

+1

Myślę, że dobrze jest opublikować to osobiście jako odpowiedź. – ivarni

+0

@ivarni Biorąc pod uwagę podany komunikat o błędzie, po prostu nie sądzę, że jest to odpowiedź dla tego konkretnego problemu. – egmfrs