ELMAH 1.2卡西尼伟大的作品,但我不能让它工作在IIS 7.5 [英] ELMAH 1.2 Works great on CASSINI but I'm not able to make it works on IIS 7.5
问题描述
我用asp.net 4和C#作为记录错误解决办法,我使用 ELMAH 1.2
我能够使用正确ELMAH在Visual Studio 2010中使用卡西尼我的本地计算机上,但我只要我的网站移动到服务器IIS 7或IIS 7.5(本地或远程)ELMAH无法记录任何错误。没有错误或黄色网页上展示。
我想有一些问题与配置,即使我读了很多教程我仍然无法使它适用于生产环境。在这里我的web.config。你能告诉我什么,我做错了吗?
注:我在这里删除了安全连接字符串,但卡西尼工作的伟大
谢谢
<?XML版本=1.0&GT?;
<结构>
< configSections>
<节名称=myWebAppSettingsTYPE =System.Configuration.SingleTagSectionHandler/>
<! - ELMAH地方 - >
< sectionGroup NAME =ELMAH>
<节名称=安全requirePermission =假TYPE =Elmah.SecuritySectionHandler,ELMAH/>
<节名称=错误日志requirePermission =假TYPE =Elmah.ErrorLogSectionHandler,ELMAH/>
<节名称=errorMailrequirePermission =假TYPE =Elmah.ErrorMailSectionHandler,ELMAH/>
<节名称=errorFilterrequirePermission =假TYPE =Elmah.ErrorFilterSectionHandler,ELMAH/>
< / sectionGroup>
<! - / ELMAH地方 - >
< / configSections>
< system.webServer>
&所述;! - ELMAH> IIS 7 - >
<验证validateIntegratedModeConfiguration =FALSE/>
<模块>
<添加名称=Elmah.ErrorLogTYPE =Elmah.ErrorLogModule,ELMAHpreCondition =managedHandler/>
< /模块>
<&处理GT;
<添加名称=ELMAHPATH =管理/ elmah.axd动词=POST,GET,HEADTYPE =Elmah.ErrorLogPageFactory,ELMAHpreCondition =integratedMode/>
< /处理器>
<! - / ELMAH> IIS 7 - >
< directoryBrowse启用=FALSE/>
< httpErrors errorMode =自定义>
<清除状态code =404子状态code = - 1/>
<清除状态code =500子状态code = - 1/>
<错误状态code =404路径=/ ErrorPages / 404.aspxprefixLanguageFilePath =responseMode =ExecuteURL/>
<错误状态code =500路径=/ ErrorPages / Error.aspxprefixLanguageFilePath =responseMode =ExecuteURL/>
< / httpErrors>
< /system.webServer>
<&是connectionStrings GT;
< /&是connectionStrings GT;
&所述;! - ELMAH - >
<&ELMAH GT;
&所述;安全allowRemoteAccess =1/>
<错误日志类型=Elmah.SqlErrorLog,ELMAH的connectionStringName =XXXXX/>
< / ELMAH>
<! - / ELMAH - >
<! - 拒绝访问管理工具 - >
<位置路径=管理>
<&的System.Web GT;
<授权>
<让角色=CMS管理员/>
<拒绝用户=*/>
< /授权>
< /system.web>
< /地点>
<! - /拒绝访问管理工具 - >
<&的System.Web GT;
&所述;! - ELMAH - >
<&HttpHandlers的GT;
<添加动词=POST,GET,HEAD路径=管理/ elmah.axdTYPE =Elmah.ErrorLogPageFactory,ELMAH/>
< / HttpHandlers的>
<&的HttpModules GT;
<添加名称=错误日志TYPE =Elmah.ErrorLogModule,ELMAH/>
< /&的HttpModules GT;
<! - / ELMAH - >
<的customErrors模式=关>< /&的customErrors GT;
<全球化文化=EN的UICulture =EN/>
< /页>
<编译调试=真defaultLanguage =C#targetFramework =4.0>
<&集会GT;
<添加组件=System.Data.Entity的,版本= 4.0.0.0,文化=中性公钥= b77a5c561934e089/>
<添加组件=System.Data.Entity.Design,版本= 4.0.0.0,文化=中性公钥= B77A5C561934E089/>
<添加组件=WebProject.Core/>
<添加组件=WebProject.DataAccess/>
<添加组件=WebProject.Cms/>
<添加组件=System.Design,版本= 4.0.0.0,文化=中性公钥= B03F5F7F11D50A3A/>
<添加组件=System.Web.Extensions.Design,版本= 4.0.0.0,文化=中性公钥= 31BF3856AD364E35/>
<添加组件=System.Windows.Forms的,版本= 4.0.0.0,文化=中性公钥= B77A5C561934E089/>
<添加组件=System.Web.Entity,版本= 4.0.0.0,文化=中性公钥= B77A5C561934E089/>
<添加组件=System.Web.Extensions程序,版本= 4.0.0.0,文化=中性公钥= 31BF3856AD364E35/>
<添加组件=System.ServiceModel.Activation,版本= 4.0.0.0,文化=中性公钥= 31BF3856AD364E35/>
<添加组件=System.Runtime.Serialization,版本= 4.0.0.0,文化=中性公钥= B77A5C561934E089/>
<添加组件=System.Web.ApplicationServices,版本= 4.0.0.0,文化=中性公钥= 31BF3856AD364E35/>
<添加组件=System.ServiceModel,版本= 4.0.0.0,文化=中性公钥= B77A5C561934E089/>
<添加组件=System.Core程序,版本= 4.0.0.0,文化=中性公钥= B77A5C561934E089/>
<添加组件=System.Data.Linq程序,版本= 4.0.0.0,文化=中性公钥= B77A5C561934E089/>
<添加组件=System.ServiceModel.Web,版本= 4.0.0.0,文化=中性公钥= 31BF3856AD364E35/>
<添加组件=System.Data.Services.Client,版本= 4.0.0.0,文化=中性公钥= B77A5C561934E089/>
<添加组件=System.Data.Services.Design,版本= 4.0.0.0,文化=中性公钥= B77A5C561934E089/>
<添加组件=System.Web.DynamicData,版本= 4.0.0.0,文化=中性公钥= 31BF3856AD364E35/>
<添加组件=System.ComponentModel.DataAnnotations,版本= 4.0.0.0,文化=中性公钥= 31BF3856AD364E35/>
<添加组件=System.Xml.Linq的,版本= 4.0.0.0,文化=中性公钥= B77A5C561934E089/>
< /组件>
< /编译>
<身份验证模式=表格>
<形式loginUrl =〜/的Login.aspx超时=2880/>
< /认证>
< roleManager启用=真cacheRolesInCookie =真>
<供应商>
<清/>
<添加的connectionStringName =XXXXX的applicationName =/NAME =AspNetSqlRoleProviderTYPE =System.Web.Security.SqlRoleProvider,System.Web程序,版本= 4.0.0.0,文化=中性公钥= b03f5f7f11d50a3a/>
< /供应商>
< / roleManager>
<会员和GT;
<供应商>
<清/>
<添加名称=AspNetSqlMembershipProvider的connectionStringName =XXXXX的applicationName =/TYPE =System.Web.Security.SqlMembershipProvider,System.Web程序,版本= 4.0.0.0,文化=中性公钥= b03f5f7f11d50a3aenablePasswordRetrieval =假enablePasswordReset设置=真requiresQuestionAndAnswer =假requiresUniqueEmail =假了passwordFormat =散列maxInvalidPasswordAttempts =3minRequiredPasswordLength =16minRequiredNonalphanumericCharacters =4passwordAttemptWindow =10passwordStrengthRegularEx pression = />
< /供应商>
< /会员>
< /system.web>
< /结构>
我使用的配置与放大器之间的一个区别;你用的人,是你的模块
部分缺失的属性 runAllManagedModulesForAllRequests =真正的
;也就是说,我的模块部分如下:
<模块runAllManagedModulesForAllRequests =真正的>
<添加名称=错误日志TYPE =Elmah.ErrorLogModule,ELMAHpreCondition =managedHandler/>
<添加名称=ErrorMailTYPE =Elmah.ErrorMailModule,ELMAHpreCondition =managedHandler/>
<添加名称=ErrorFilterTYPE =Elmah.ErrorFilterModule,ELMAHpreCondition =managedHandler/>
<添加名称=IIS7AppVersioningModuleTYPE =IIS7AppVersioningModule.AppVersionModule,IIS7AppVersioningModule/>
< /模块>
I use asp.net 4 and C# as logging error solution I use ELMAH 1.2.
I was able to use properly ELMAH on my local computer using CASSINI in Visual Studio 2010 but I as soon I move the website to a Server with IIS 7 or IIS 7.5 (locally or remotely) ELMAH is not able to record any errors. No error or yellow pages show up.
I suppose there is some problem with configurations, even I read many tutorials I'm still not able to make it works on production environment. Here my Web.Config. Could you tell me what I'm doing wrong?
NOTES: I removed here the connection string for security, but on cassini work great Thanks
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="myWebAppSettings" type="System.Configuration.SingleTagSectionHandler"/>
<!-- Elmah Local-->
<sectionGroup name="elmah">
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah"/>
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah"/>
</sectionGroup>
<!-- / Elmah Local -->
</configSections>
<system.webServer>
<!-- Elmah > IIS 7 -->
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<add name="Elmah.ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
</modules>
<handlers>
<add name="Elmah" path="Admin/elmah.axd" verb="POST,GET,HEAD" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
</handlers>
<!-- / Elmah > IIS 7 -->
<directoryBrowse enabled="false"/>
<httpErrors errorMode="Custom">
<remove statusCode="404" subStatusCode="-1"/>
<remove statusCode="500" subStatusCode="-1"/>
<error statusCode="404" path="/ErrorPages/404.aspx" prefixLanguageFilePath="" responseMode="ExecuteURL"/>
<error statusCode="500" path="/ErrorPages/Error.aspx" prefixLanguageFilePath="" responseMode="ExecuteURL"/>
</httpErrors>
</system.webServer>
<connectionStrings>
</connectionStrings>
<!-- Elmah -->
<elmah>
<security allowRemoteAccess="1" />
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="XXXXX" />
</elmah>
<!-- / Elmah -->
<!-- Deny access to Admin Tools -->
<location path="Admin">
<system.web>
<authorization>
<allow roles="CMS-ADMINISTRATOR"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<!-- / Deny access to Admin Tools -->
<system.web>
<!-- Elmah -->
<httpHandlers>
<add verb="POST,GET,HEAD" path="Admin/elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
</httpModules>
<!-- / Elmah -->
<customErrors mode="Off"></customErrors>
<globalization culture="en" uiCulture="en"/>
</pages>
<compilation debug="true" defaultLanguage="c#" targetFramework="4.0">
<assemblies>
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add assembly="System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="WebProject.Core"/>
<add assembly="WebProject.DataAccess"/>
<add assembly="WebProject.Cms"/>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Data.Services.Client, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Services.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.DynamicData, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<authentication mode="Forms">
<forms loginUrl="~/Login.aspx" timeout="2880"/>
</authentication>
<roleManager enabled="true" cacheRolesInCookie="true">
<providers>
<clear/>
<add connectionStringName="XXXXX" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" connectionStringName="XXXXX" applicationName="/" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="3" minRequiredPasswordLength="16" minRequiredNonalphanumericCharacters="4" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
</providers>
</membership>
</system.web>
</configuration>
One difference between the configuration I use & the one you use, is your modules
section is missing a property runAllManagedModulesForAllRequests="true"
; that is, my modules section is as follows:
<modules runAllManagedModulesForAllRequests="true">
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
<add name="IIS7AppVersioningModule" type="IIS7AppVersioningModule.AppVersionModule,IIS7AppVersioningModule" />
</modules>
这篇关于ELMAH 1.2卡西尼伟大的作品,但我不能让它工作在IIS 7.5的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!