微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

即使修改了applicationHost.config

如何解决即使修改了applicationHost.config

我正在建立一个网站,但遇到了无法访问/下载某些文件扩展名(例如.py.cs)的问题。例如,当我请求获取.cs文件时。

fetch("https://localhost:44310/userdata/texts/7/637381399366309280.cs")
        .then(resp => resp.blob())
        .then(blob => {
            success(blob)
        })
        .catch((res) => alert('oh no!'));

userdata文件夹是wwwroot文件夹的直接子级。 success是将Blob转换为文本的函数。对于.txt文件(与.cs文件位于同一文件夹中),一切正常,我得到了.txt文件包含的确切文本。但是对于.cs文件,我得到了标记文本-网站的index.html。奇怪的是oh no!没有被警告。我尝试使用托管在github上的一些随机.cs文件,它运行良好。

最初,我得到了一个完整的404。当我尝试在浏览器中打开链接https://localhost:44310/userdata/texts/7/637381399366309280.cs)时,得到以下页面

enter image description here

我做了一些研究,找到了applicationHost.config删除了所有过滤后的扩展,如下所示:

<requestfiltering>
   <fileExtensions allowUnlisted="true" applyToWebDAV="false">
          <!--empty-->
   </fileExtensions>
   ....
</requestfiltering>

现在我不再有404了。但是success(blob)返回标记文本-我网站的index.html。 (我使用Reactjs,并且我注意到当获取出现问题时会发生这种情况。)当我尝试在新标签页中打开url时,我再也没有出现requestfiltering错误页面了。而是会加载网站的主页。

所以我真的很困惑。我没有404,但似乎也没有得到该文件修改requestfiltering改变了一些东西,但是似乎还有其他事情要做。请帮忙。

解决方法

事实证明,除了在applicationHost.config文件中编辑<requestFiltering>之外,我还必须在startUp类中ServeUnknownFileTypes

app.UseStaticFiles(new StaticFileOptions
{
   ServeUnknownFileTypes = true,DefaultContentType = "text/plain"
});

查看this answer了解更多信息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。