Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';使用elmah MVC在生产服务器上访问/elmah?_C#_Asp.net Mvc_Elmah_Http Status Code 403 - Fatal编程技术网

C# Can';使用elmah MVC在生产服务器上访问/elmah?

C# Can';使用elmah MVC在生产服务器上访问/elmah?,c#,asp.net-mvc,elmah,http-status-code-403,C#,Asp.net Mvc,Elmah,Http Status Code 403,我安装了elmah.mvc nuget包,并保留了SAN设置的默认配置,即发送电子邮件并将其插入SQL数据库 在我的本地计算机上,当我使用Visual Studio主机时,我可以打开我的应用程序并访问/elmah fine以查看错误报告。然而,当我尝试在生产环境中访问/elmah时,我得到两个错误,首先我得到一个403访问被拒绝服务器错误。然后在我的电子邮件(来自elmah)中,我得到: 有人知道这里发生了什么,以及如何修复吗?谢谢 根据以下答案,我尝试了以下方法: 在 在 我尝试将路径

我安装了elmah.mvc nuget包,并保留了SAN设置的默认配置,即发送电子邮件并将其插入SQL数据库

在我的本地计算机上,当我使用Visual Studio主机时,我可以打开我的应用程序并访问/elmah fine以查看错误报告。然而,当我尝试在生产环境中访问/elmah时,我得到两个错误,首先我得到一个
403访问被拒绝
服务器错误。然后在我的电子邮件(来自elmah)中,我得到:

有人知道这里发生了什么,以及如何修复吗?谢谢

根据以下答案,我尝试了以下方法:



我尝试将路径设置为
elmah.axd
~/elmah
。所有这些仍然给出相同的错误,并且仍然在本地工作,但不在生产中


编辑:当我远程访问服务器并通过服务器上的浏览器访问它时(不是使用本地主机,而是使用实际的站点地址),它实际上也可以工作。那么我没有什么许可?似乎是在服务器级别。

确保在web.config文件的webServer部分中定义了HttpHandler

<system.webServer>
  <httpHandlers>
    <add name="elmah" verb="GET" path="elmah.axd"  type="Elmah.ErrorLogPageFactory, Elmah"/>
  </httpHandlers>
</system.webServer>

您需要通过将以下配置设置添加到web.config文件的
部分来启用Elmah进行远程访问。此值的默认设置为false,这只允许localhost,因此它可以从Visual Studio中在本地计算机上工作

   <elmah>
      <security allowRemoteAccess="true"/>
   </elmah>


我自己似乎总是忘记这一点,花了几分钟时间搔头;)

如果你是在生产环境中,你也会想看看这篇文章:我想我应该澄清一下,我的意思是,当从本地主机以外的地方访问时,其他人不一定可以访问我们的实时服务器。IIS 6或7?IIS中的.axd文件是否有显式设置的权限?我不确定是否要将其放在system.web中,因为system.webServer只有一个标记,但我尝试将其放在这两个位置,并在路径中同时尝试elmah.axd和~/elmah(因为它是MVC)它仍然不工作,仍然有相同的错误。您是否为处理程序添加了路由?您可能已经有了和*.axd请求的忽略路由。我该如何做?路由没有控制器/操作。还有,我确实有
routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”)
但问题是,为什么它在本地主机上工作,或者甚至在服务器上直接浏览URL(不是本地主机)而不添加这些处理程序或路由时工作?这是在使用Elmah.Mvc,所以有很多自定义装配(这似乎是您根据我看到的文章建议的)将它连接到MVC是没有必要的…尽管有些东西仍然不起作用。只是在谷歌上找到了这个答案,当我意识到我已经这样做了时,我正要升级它-大概是上次我试图配置Elmah时忘记了这一点!谢谢:)只是和杰米·汉弗莱斯有同样的问题。。。有些答案值得多次更新。我在system.web中添加了类似DOTang所说的东西,然后这个就成功了!正在努力将
添加到我的
web.config
中,但没有任何效果。我在哪里添加它?有什么先决条件?在我添加之前需要准备什么?谢谢。唯一的先决条件是将Elmah.MVC NuGet包添加到您的网站。请按照项目网站上的说明进行操作-
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
<system.webServer>
  <httpHandlers>
    <add name="elmah" verb="GET" path="elmah.axd"  type="Elmah.ErrorLogPageFactory, Elmah"/>
  </httpHandlers>
</system.webServer>
   <elmah>
      <security allowRemoteAccess="true"/>
   </elmah>