我正在尝试实现一项需要很长时间才能完成的任务,作为单个Web服务的单向方法。这个方法是立即返回控制并开始执行任务而不强制用户等待。在本地机器上它工作正常,但是当部署到服务器时 - 看起来根本不调用单向方法。我添加了日志记录,没有调用新Web服务的方法之一。服务器支持匿名访问。设置了匿名访问的Windows帐户,并且其他服务没有问题。 建议可能是什么问题。 谢谢。
//Main Service
...
string Directory = Server.MapPath(...);
using(OneWayLauncherService.OneWayLauncher oneWayLauncher= new OneWayLauncherService.OneWayLauncher())
{
oneWayLauncher.Launch(Directory, doc);
}
...
/// OneWay Service
namespace OneWayLauncher
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
public class OneWayLauncher: System.Web.Services.WebService
{
[SoapDocumentMethod(OneWay = true)]
[WebMethod]
public void Launch(string Directory, string doc)
{
Processor RequestProcessor = new Processor(templateDirectory);
string processingResult = string.Empty;
processingResult = RequestProcessor.Process(doc);
}
}
}
如果评论[SoapDocumentMethod(OneWay = true)] - 它有效。我认为清理可能为时过早,但没有使用完全相同的情况。