nLog不会触发webservice方法

时间:2013-08-06 13:47:51

标签: c# nlog

我一直关注nlog项目主页上的一个例子,但我无法让它工作。该示例位于:http://nlog-project.org/documentation/v2.0.1/html/T_NLog_Targets_WebServiceTarget.htm

使用nLog目标时会出现问题。我的配置:

<targets>
    <target name="ws" xsi:type="WebService" namespace="http://www.nlog-project.org/example" protocol="Soap11" methodName="HelloWorld" url="http://localhost:53810/Service1.asmx">
        <parameter name="n1" type="System.String" layout="${message}"/>
        <parameter name="n2" type="System.String" layout="${logger}"/>
        <parameter name="n3" type="System.String" layout="${level}"/>           
    </target>       
</targets>

<rules>
    <logger name="test" writeTo="ws" />     
</rules>

当我启动控制台应用程序时没有任何反应,但如果我将URL更改为以下内容,则似乎触发了该方法:

http://localhost:53810/Service1.asmx/HelloWorld

但是当使用这个方法参数似乎不起作用..

我的网络服务方法:

[WebMethod]
public void HelloWorld(string n1, string n2, string n3)
{
    HttpContext.Current.Trace.Write("n1 " + n1);
    HttpContext.Current.Trace.Write("n2 " + n2);
    HttpContext.Current.Trace.Write("n3 " + n3);
}

任何人都知道如何解决这个问题?我试过HttpPost和Soap11。

1 个答案:

答案 0 :(得分:1)

<强>解决方案

nlog配置文件中的命名空间必须与web服务的命名空间完全相同。

nlog config:

namespace="http://tempuri.org/"

web服务:

[WebService(Namespace = "http://tempuri.org/")]