Asp.net core Blazor在部署到IIS后未提供wwwroot中的静态文件
我正在开发一个Asp.net core Blazor在部署到IIS后未提供wwwroot中的静态文件,asp.net-core,iis,blazor,blazor-webassembly,asp.net5,Asp.net Core,Iis,Blazor,Blazor Webassembly,Asp.net5,我正在开发一个.NET5.0BlazorWASM应用程序。当我使用iisexpress运行应用程序表单visualstudio并导航到https://localhost:5001/docs/simple.pdf,该文件在浏览器中提供 但是,在将blazor wasm应用程序部署到IIS后,同样的方法不起作用。我没有收到任何错误,而是加载了我的未找到路线模板屏幕 这是屏幕打印: blazor wasm应用程序的wwwroot IISExpress加载文档: IIS虚拟目录路径: IIS未加载
.NET5.0BlazorWASM
应用程序。当我使用iisexpress运行应用程序表单visualstudio并导航到https://localhost:5001/docs/simple.pdf
,该文件在浏览器中提供
但是,在将blazor wasm应用程序部署到IIS
后,同样的方法不起作用。我没有收到任何错误,而是加载了我的未找到
路线模板屏幕
这是屏幕打印:
blazor wasm应用程序的wwwroot
IISExpress
加载文档:
IIS虚拟目录
路径:
IIS
未加载文档并显示NotFound
路由模板:
我还注意到,wwwroot
中的所有文件都不能在IIS
的浏览器中直接访问。请协助解决我所缺少的问题。Blazor WebAssembly不参与提供您的文件
这是要在IIS中配置的内容。我能够重现您的问题。以下是我认为您可以修复它的方法
导航到解决方案中的服务器项目
打开文件Startup.cs。导航到Configure方法并添加以下代码行:
app.UseStaticFiles();
发布项目并重新复制到IIS
在默认的VisualStudio模板中,此代码将存在。但这取决于您创建解决方案的方式,您可能错过了。那么您如何配置IIS?请您帮助我们在IIS中进行哪些配置?您从哪里运行Blazor WASM SPA?您如何运行localhost:44353?我将Blazor WASM发布到IIS虚拟目录,该目录映射到localhost:44353,并从browserI访问该目录。我倾向于同意这一点回答。我刚刚在我的IIS上发布了一个小Blazor WASM,我可以轻松地导航到wwwroot中的资源。所以我认为OP问题与Blazor无关。当您配置IIS时,您是否选择了端口44353?检查IIS配置中的端口以确保。如果没有显式设置,则默认为端口80I显式选择端口44353。https版本将在默认端口80上运行?好的,我也尝试了44353,效果很好。要检查的另一件事是:确保您的服务器项目中Startup.cs的Configure()方法中有app.UseStaticFiles()。这是blazor wasm到IIS的独立部署app.UseStaticFiles()
在此不可用。您是否已检查控制台中是否存在相关错误消息?我在您发布的图像中未找到NotFound错误消息。或者您可以尝试使用失败的请求跟踪来获取详细的错误消息。app.UseStaticFiles()
将在blazor wasm项目模板中提供?如果它是ASP.NET托管的应用程序,则将有客户端和服务器端项目。我误解了这只是一个客户端项目。