Azure网站.well-已知路由变得无法访问

Dan*_*don 5 c# asp.net-mvc azure applepay

我正在尝试制作文件:

.well-known/apple-developer-merchantid-domain-association
Run Code Online (Sandbox Code Playgroud)

可以通过我的Azure网站访问.我已将此添加到路由配置中:

routes.MapRoute(
    name: "ApplePay-MacOS",
    url: ".well-known/apple-developer-merchantid-domain-association",
    defaults: new { controller = "Home", action = "WellKnownApplePay" });
Run Code Online (Sandbox Code Playgroud)

这指向一个控制器操作,该操作将文件输出.

现在一切正常,当我在我的本地IIS和IIS Express上测试它时,但当我将它上传到azure它只是不接受点"." URL中的字符.如果我删除它然后它工作,文件下载后发布到azure.我需要它来使用点,因为这是苹果支付我的网站所需要的.

Tom*_*ken 6

我能够用不同的方法解决这个问题.我停止尝试为证书编写路由,并在每个Peter Hahndorf的答案中将web.config添加到目录中:IIS:如何在没有扩展名的情况下提供文件?

<?xml version="1.0" encoding="UTF-8"?>
 <configuration>
     <system.webServer>
         <staticContent>
             <mimeMap fileExtension="." mimeType="text/xml" />
         </staticContent>
     </system.webServer>
 </configuration>
Run Code Online (Sandbox Code Playgroud)


Dan*_*don 5

我找到了答案!感谢汤姆的回答。

您确实可以将 mimemap 添加到 Web 配置以解决问题。但是不是把 mimeType="text/xml" 你需要使用 mimeType="application/octet-stream" 来提供原始的 apple-developer-merchantid-domain-association 文件而不是将它作为文本(服务器不想做)。

所以答案是将这个添加到 webconfig 中的 system.webserver 节点:

<staticContent>
    <mimeMap fileExtension="." mimeType="application/octet-stream" />
</staticContent>
Run Code Online (Sandbox Code Playgroud)