nLog不会激发webservice方法
本文关键字:webservice 方法 nLog | 更新日期: 2023-09-27 18:26:40
我一直在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。
解决方案
nlog配置文件中的命名空间需要与Web服务的命名空间完全相同。
nlog配置:
namespace="http://tempuri.org/"
网络服务:
[WebService(Namespace = "http://tempuri.org/")]