Tag: Web服务

如何在Web服务安装期间更改默认的虚拟目录名称?

我有一个使用VS2008创建的C#Web服务。 我有一个部署项目,用于创建我用于部署的MSI。 是否有某个设置可以更改安装期间提示用户的默认虚拟目录? 我不想更改Web服务的名称来执行此操作。

数据库/网站状态的Web服务

我目前正在尝试构建(更简单的版本)状态网站,类似于亚马逊的服务健康仪表板 基本上,我需要连接大约3个数据中心和几个网站,至少有一个Up / Down消息。 我大多熟悉C#和一些网络编程。 我对Web服务略显熟悉,看起来这是实现这一点的好方法。 我可以通过Google的方式学习单个部分的教程,但我不确定这样的概述是如何工作的。 我理解它的方式是将它分解为以下部分: 状态网站 – ASP.NET Web服务 – C#/ ASP.NET 某种程序将状态发送到Web服务 – C#? 对于网站状态,状态站点将只运行脚本以检查URL是否返回错误。 我对实现数据中心状态的最简单方法感到困惑。 根据我的理解,我可以编写一个可以从数据中心获得响应的Web服务。 最简单的方法是在每个数据中心中执行此C#程序,检查状态(可能登录到SQL数据库),然后将状态发送到Web服务? 我也很困惑,最简单的方法是将这些信息提供给状态网站。 我想最简单的方法是让Web服务写入状态网站会读取的文件。 此外,我想如果在一定时间内没有收到状态消息,则需要对Web服务调用进行计时并报告中断。 任何高级概述帮助将不胜感激。 谢谢。

HttpWebRequest到c#中的web服务; 如何从响应流中获取数据?

我正在使用POST调用Web服务并接收2MB xml。 问题是我需要花费很多时间才能使用Stream中的数据。 响应似乎是在7秒之后,但是从响应流中读取内容(它是一个字符串)还需要10秒。 Stopwatch s = new Stopwatch(); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(MyUri); req.Method = “POST”; req.ContentType = “application/x-www-form-urlencoded”; req.ContentLength = Poststring.Length; s.Start(); StreamWriter swriter = new StreamWriter(req.GetRequestStream()); swriter.Write(Poststring); swriter.Close(); // Get the response. 7 sec HttpWebResponse response = (HttpWebResponse)req.GetResponse(); s.Stop(); Debug.WriteLine(“Talking to Web-Service: “+s.ElapsedMilliseconds); s.Reset(); // Get the stream containing content returned by the […]

C#.NET Web服务异步

我正在尝试使用Web服务实现一个执行一些非常冗长的任务的API。 我基本上希望Web服务启动执行冗长任务的线程,并使其保持运行直到完成。 问题是因为它是一个API,我希望它是跨平台的。 所以我的问题如下: 是否可以进行不需要客户端在.NET Framework上的异步调用? (看起来初始/结束框架需要我返回.NET IASyncResult对象)如果是这样,怎么办呢? 完全明确的示例代码将非常有用。 因为Web服务中没有状态保留,以后可以恢复该线程吗? 如果客户想要取消该过程,这将非常重要。

异步调用webservice并等待所有线程完成

我需要多次调用Web服务来获取数据,然后将这些数据放入我的数据库中,所以我有以下代码: foreach (string v in options) { IList nodes = _pi.GetData(v); _dbService.SaveToDb(nodes); } GetData实现如下所示: public IList GetData(string v) { IList nodes = null; try { var client = new WsClient(); IEnumerable wsNodes = client.getNodes(new getClassLevel { code = v }); nodes = ProcessData(wsNodes); } return nodes; } 我想将此代码修改为异步版本,以便在单独的线程中运行每次下载/保存到数据库并等待所有线程完成,或者可能还有其他一些方法来提高此类代码的性能,请你帮忙吗我?

取消异步Web服务调用

我需要能够取消对我的webservice的异步调用。 我的一个解决方案是使用管理我自己的线程,并使用SOAP客户端的同步方法。 这工作正常,它需要一些更精细的线程管理。 如果我使用通过添加Web服务引用提供的这两种模式中的任何一种,请说: var Client = new ASL_WS.SvcSoapClient() IAsyncResult result = Client.BeginAuthenticateUser(Email, Password, new AsyncCallback(AuthCompleted)); 要么 var Client = new ASL_WS.SvcSoapClient() Client.AuthenticateUserCompleted += AuthCompleted; Client.AuthenticateUserAsync(Email, Passsword); 这两种模式中的任何一种都能给我一种取消请求的方法吗? 一个用例可能是:用户登录,但想要在身份validation调用完成之前取消。 当然,我可以通过修改传递给这些调用的asyncState并将其设置为禁用UI更新来实现这一点,但这不是我想要的。 我可以取消所有未完成的操作吗? Client.Abort()是否取消此类操作。 如果有很多异步请求会被取消怎么办? 有没有其他API方法可以做到这一点?