无法从crm 2011获取log4net以使用WebServiceAppender

无法从crm 2011获取log4net以使用WebServiceAppender,log4net,dynamics-crm-2011,Log4net,Dynamics Crm 2011,我曾尝试在crm 2011插件(沙盒)中使用log4net webserviceappender,log4net显然与插件一起正确安装(log4net配置文件格式不正确时除外),但显然没有调用appender。我可以从插件中直接调用webservice,因此该部分可以正常工作,但无法找出log4net的错误 <!-- WebService parameters. --> <param name="Url" value="http://my-internal-server

我曾尝试在crm 2011插件(沙盒)中使用log4net webserviceappender,log4net显然与插件一起正确安装(log4net配置文件格式不正确时除外),但显然没有调用appender。我可以从插件中直接调用webservice,因此该部分可以正常工作,但无法找出log4net的错误

  <!-- WebService parameters. -->
  <param name="Url" value="http://my-internal-server/errorlog/ErrorHandler.asmx" />
  <param name="TimeoutSeconds" value="60" />

  <!-- Proxy parameters. -->
  <param name="UseProxy" value="false" />
  <param name="ProxyUrl" value="http://myproxy:3128" />
  <param name="ProxyBypassOnLocal" value="true" />
  <param name="ProxyUseDefaultCredentials" value="true" />
  <param name="ProxyCredentialsDomain" value="OFFICE" />
  <param name="ProxyCredentialsUserName" value="MyUser" />
  <param name="ProxyCredentialsPassword" value="MyPassword" />
</appender>

<root>
  <level value="Info" />
  <appender-ref ref="WebServiceAppender" />
</root>
是否有人知道将log4net与crm结合使用的步骤和/或有人知道为什么webserviceappender没有被调用

  <!-- WebService parameters. -->
  <param name="Url" value="http://my-internal-server/errorlog/ErrorHandler.asmx" />
  <param name="TimeoutSeconds" value="60" />

  <!-- Proxy parameters. -->
  <param name="UseProxy" value="false" />
  <param name="ProxyUrl" value="http://myproxy:3128" />
  <param name="ProxyBypassOnLocal" value="true" />
  <param name="ProxyUseDefaultCredentials" value="true" />
  <param name="ProxyCredentialsDomain" value="OFFICE" />
  <param name="ProxyCredentialsUserName" value="MyUser" />
  <param name="ProxyCredentialsPassword" value="MyPassword" />
</appender>

<root>
  <level value="Info" />
  <appender-ref ref="WebServiceAppender" />
</root>
谢谢

  <!-- WebService parameters. -->
  <param name="Url" value="http://my-internal-server/errorlog/ErrorHandler.asmx" />
  <param name="TimeoutSeconds" value="60" />

  <!-- Proxy parameters. -->
  <param name="UseProxy" value="false" />
  <param name="ProxyUrl" value="http://myproxy:3128" />
  <param name="ProxyBypassOnLocal" value="true" />
  <param name="ProxyUseDefaultCredentials" value="true" />
  <param name="ProxyCredentialsDomain" value="OFFICE" />
  <param name="ProxyCredentialsUserName" value="MyUser" />
  <param name="ProxyCredentialsPassword" value="MyPassword" />
</appender>

<root>
  <level value="Info" />
  <appender-ref ref="WebServiceAppender" />
</root>
编辑:根据请求包括log4net.config文件

  <!-- WebService parameters. -->
  <param name="Url" value="http://my-internal-server/errorlog/ErrorHandler.asmx" />
  <param name="TimeoutSeconds" value="60" />

  <!-- Proxy parameters. -->
  <param name="UseProxy" value="false" />
  <param name="ProxyUrl" value="http://myproxy:3128" />
  <param name="ProxyBypassOnLocal" value="true" />
  <param name="ProxyUseDefaultCredentials" value="true" />
  <param name="ProxyCredentialsDomain" value="OFFICE" />
  <param name="ProxyCredentialsUserName" value="MyUser" />
  <param name="ProxyCredentialsPassword" value="MyPassword" />
</appender>

<root>
  <level value="Info" />
  <appender-ref ref="WebServiceAppender" />
</root>

  <!-- WebService parameters. -->
  <param name="Url" value="http://my-internal-server/errorlog/ErrorHandler.asmx" />
  <param name="TimeoutSeconds" value="60" />

  <!-- Proxy parameters. -->
  <param name="UseProxy" value="false" />
  <param name="ProxyUrl" value="http://myproxy:3128" />
  <param name="ProxyBypassOnLocal" value="true" />
  <param name="ProxyUseDefaultCredentials" value="true" />
  <param name="ProxyCredentialsDomain" value="OFFICE" />
  <param name="ProxyCredentialsUserName" value="MyUser" />
  <param name="ProxyCredentialsPassword" value="MyPassword" />
</appender>

<root>
  <level value="Info" />
  <appender-ref ref="WebServiceAppender" />
</root>


看起来您已经在磁盘上部署了配置文件。这不是一个理想的地方,因为您必须处理不同模块的不同需求

  <!-- WebService parameters. -->
  <param name="Url" value="http://my-internal-server/errorlog/ErrorHandler.asmx" />
  <param name="TimeoutSeconds" value="60" />

  <!-- Proxy parameters. -->
  <param name="UseProxy" value="false" />
  <param name="ProxyUrl" value="http://myproxy:3128" />
  <param name="ProxyBypassOnLocal" value="true" />
  <param name="ProxyUseDefaultCredentials" value="true" />
  <param name="ProxyCredentialsDomain" value="OFFICE" />
  <param name="ProxyCredentialsUserName" value="MyUser" />
  <param name="ProxyCredentialsPassword" value="MyPassword" />
</appender>

<root>
  <level value="Info" />
  <appender-ref ref="WebServiceAppender" />
</root>
为了简化需要额外配置的插件的部署,您可以将配置值传递给插件构造函数。您应该在运行时通过配置并配置log4net。看

  <!-- WebService parameters. -->
  <param name="Url" value="http://my-internal-server/errorlog/ErrorHandler.asmx" />
  <param name="TimeoutSeconds" value="60" />

  <!-- Proxy parameters. -->
  <param name="UseProxy" value="false" />
  <param name="ProxyUrl" value="http://myproxy:3128" />
  <param name="ProxyBypassOnLocal" value="true" />
  <param name="ProxyUseDefaultCredentials" value="true" />
  <param name="ProxyCredentialsDomain" value="OFFICE" />
  <param name="ProxyCredentialsUserName" value="MyUser" />
  <param name="ProxyCredentialsPassword" value="MyPassword" />
</appender>

<root>
  <level value="Info" />
  <appender-ref ref="WebServiceAppender" />
</root>

另一种选择是使用Dynamics CRM 2011的WebResources。查看哪个描述了所有可用选项。

我们可以查看相关的web.config部分吗?@ckeller:我使用ILMerge将其与我使用它的插件连接起来。您是在文件系统上部署配置还是作为插件配置值?@ckeller:作为文件系统上的文件,但是我非常确定我必须使用完整路径来确保文件被拾取,否则它会崩溃,所以我不认为它没有读取配置文件。但是我会再检查。@ckeller:仔细想想,这听起来很有道理,你应该把它写下来作为一个答案,这样如果它最终成为解决方案,我就可以接受。
  <!-- WebService parameters. -->
  <param name="Url" value="http://my-internal-server/errorlog/ErrorHandler.asmx" />
  <param name="TimeoutSeconds" value="60" />

  <!-- Proxy parameters. -->
  <param name="UseProxy" value="false" />
  <param name="ProxyUrl" value="http://myproxy:3128" />
  <param name="ProxyBypassOnLocal" value="true" />
  <param name="ProxyUseDefaultCredentials" value="true" />
  <param name="ProxyCredentialsDomain" value="OFFICE" />
  <param name="ProxyCredentialsUserName" value="MyUser" />
  <param name="ProxyCredentialsPassword" value="MyPassword" />
</appender>

<root>
  <level value="Info" />
  <appender-ref ref="WebServiceAppender" />
</root>