【问题标题】:Azure app service: how to add custom Handler mapping to process TXT files?Azure 应用服务:如何添加自定义 Handler 映射来处理 TXT 文件?
【发布时间】:2019-01-21 20:46:40
【问题描述】:

我想在 TXT 文件中使用 ASP.Net 指令。通常,我会为此添加一个处理程序映射器。但是如何在 Azure 应用服务中做到这一点?添加以下处理程序 (D:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll):

产生以下异常:

最可能的原因:
  • IIS 收到 要求;但是,在处理过程中发生了内部错误 请求。此错误的根本原因取决于哪个模块 处理请求以及工作进程中发生的情况 发生此错误。
  • IIS 无法访问 Web 站点或应用程序的 web.config 文件。如果 NTFS 权限设置不正确。
  • IIS 无法 网站或应用程序的进程配置。
  • 经过身份验证的用户无权使用此 DLL。
  • 请求映射到托管处理程序,但 .NET 未安装可扩展性功能。

你可以做的事情 试试:

  • 确保 NTFS 权限 web.config 文件是正确的并允许访问 Web 服务器的 机器帐户。
  • 检查事件日志以查看是否有 记录了其他信息。
  • 验证权限 用于 DLL。
  • 安装 .NET 可扩展性功能,如果 请求被映射到托管处理程序。
  • 创建跟踪 跟踪此 HTTP 状态代码的失败请求的规则。更多 有关为失败请求创建跟踪规则的信息,请单击 here

而且我认为我对这些建议无能为力。

那么在 Azure App Services 中将静态文件映射到 ASP.Net 管道的正确方法是什么?

【问题讨论】:

  • 尝试使用路径D:\home\site\wwwroot来引用你应用的根目录,参考这个link
  • @JoyWang 该路径仅供参考,它不包含任何 DLL。例如,如果您在那里上传您的 PHP 二进制文件,它将被使用。
  • @avs099 有更新吗?

标签: azure iis


【解决方案1】:

在 Azure Web 服务中,我们不必使用aspnet_isapi.dll 来使用 ASP.Net 管道,因为内置服务器是 IIS。我们可以看到下面的截图,我发布了一个 ASP.NET Core 到 Azure Web 应用程序,我们可以在根文件夹下看到 Microsoft.Owin.Host.SystemWeb.dll,这意味着我的 ASP.NET Core 应用程序托管在 IIS 中。 (除了IIS,还有其他更好的服务器支持OWIN吗?)。

因此,如果您使用 ASP.NET Core 并且想要使用 IIS 管道,我认为这是不可能的,因为在这种情况下 IIS 只是一个反向代理服务器。您需要删除 Microsoft.Owin.Host.SystemWeb.dll 并修改 web.config 文件(我尝试过并且工作过),但这样做会导致您的 ASP.NET Core 应用程序崩溃。

如果您使用的是 ASP.NET Framework 或只是一个简单的静态 Web,我们可以使用我们的代码和 web.config 来完成。

【讨论】:

    猜你喜欢
    • 2020-08-22
    • 2017-12-29
    • 2022-06-27
    • 1970-01-01
    • 2020-07-25
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多