Tag: web services

从C#Web服务调用或调用C#控制台应用程序?

由于我的问题,我无法通过我的Web服务运行DOS命令。 C#web服务运行批处理文件还是dos命令? 由于我不能让我的web服务直接运行dos命令,我现在正在考虑创建将运行我的dos命令的C#控制台应用程序,然后控制台应用程序将由Web服务调用。 有可能这样做吗?

压缩Web服务请求

我在c#/ dotnet中有一个web服务和客户端,我正在使用EnableDecompression来压缩我从Web服务器获得的响应。 是否也可以压缩请求?

将DateTime转换为JSON DateTime

我有一个返回DateTime字段的WebService。 我得到一个结果/Date(1379048144000)/但是 我想要1379048144000我怎么能实现这一目标。 [WebMethod] public DateTime GetServerDate() { return DateTime.Now; } 通过设置Header Content-Type:application / json; 字符集= UTF-8; 我有一个像/Date(1379048144000)/ 。

在.NET ASMX Web服务中获取会话

我的ASP.NET Web应用程序旁边有一个ASMX Web服务。 现在,我需要将用户会话引入Webservice。 为了测试这个我做了这个简单的方法: [WebMethod(EnableSession = true)] public string checkSession() { return HttpContext.Current.Session[“userid”].ToString(); } 所以,首先我登录我的网络应用程序,然后在浏览器中转到我的webservice并在该自动生成的测试页面上单击“checkSession”。 我在3台电脑上测试了这个。 所有这3个都可以正常使用webapp(因此正在创建会话等),其中2个在调用webmethod时返回Session [“userid”]的值,但最后一台计算机返回“对象引用未设置为对象的实例“因为Session是null。 那么,这些计算机之间的区别是什么?为什么我的ASP.NET应用程序可以在所有计算机上获得会话但是webservice不能?

WCFexception处理

如果我的WCF服务中发生exception,那么将该错误传达给客户端的最佳方法是什么? 我应该在服务上登录并重新抛出soapexception吗? 或者我应该记录它并返回用户友好的消息?

请求失败,HTTP状态为417:期望失败 – 使用Web服务

几分钟前,我正在开发visual studio 2010中的一个项目,突然我的电脑重新启动了。 重新启动后,我在本地机器上浏览该网站时收到以下错误: 请求失败,HTTP状态为417:期望失败。 描述:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。 exception详细信息:System.Net.WebException:请求失败,HTTP状态为417:期望失败。 我的网站名称是: MyWebSite 我在远程服务器(vps)上有一个Web服务,MyWebSite正在使用它并且该错误与它有关系。 Line 172: [System.Web.Services.Protocols.SoapDocumentMethodAttribute(“http://tempuri.org/MyWebSiteEnable”, RequestNamespace=”http://tempuri.org/”, ResponseNamespace=”http://tempuri.org/”, Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] Line 173: public bool MyWebSiteEnable() { Line 174: object[] results = this.Invoke(“MyWebSiteEnable”, new object[0]); Line 175: return ((bool)(results[0])); Line 176: } 关于该Web服务,每件事情都可以。 这是什么错误,我该如何解决? 在该Web服务中只有一个简单的bool方法,它返回true。 我在代码隐藏中使用该web服务,如下所示: private void CheckForPageExpiration() { MyService service = new MyService(); if (service.MyWebSiteEnable()) { […]

如何在Web安装项目中创建新的应用程序池?

我需要部署我的Web服务。 它需要使用自己的凭据在IIS中的单独应用程序池中运行。 是否可以通过在VS 2008中使用Web安装项目来实现此目的? 默认情况下,我似乎只能选择现有的应用程序池。

使用ServerCertificateValidationCallback的最佳实践

我正在开发一个在两个后端服务器之间使用一些HTTP通信的项目。 服务器使用X509证书进行身份validation。 不用说,当服务器A(客户端)建立与服务器B(服务器)的连接时,存在SSL / TLSvalidation错误,因为使用的证书不是来自受信任的第三方权限。 通常,处理它的方法是使用ServicePointManager.ServerCertificateValidationCallback ,例如: ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, error) => { return cert.GetCertHashString() == “xxxxxxxxxxxxxxxx”; }; 这种方法有效,除非它不理想。 它本质上做的是覆盖应用程序完成的每个http请求的validation过程。 因此,如果另一个类将尝试运行HTTP请求,它将失败。 此外,如果另一个类为了自己的目的重写ServicePointManager.ServerCertificateValidationCallback ,那么我的通信开始突然失败。 想到的唯一解决方案是创建一个单独的AppDomain来执行客户端HTTP请求。 这可行,但实际上 – 只有这样才能执行HTTP请求是愚蠢的。 开销将是惊人的。 考虑到这一点,有没有人研究过.NET中是否有更好的实践,这将允许访问Web服务,同时处理客户端SSL / TLSvalidation而不影响其他Web客户端?

validation站点/应用程序以访问Web API服务

简短问题:我在.NET中使用Web API服务,并且只使用HTML和AngularJS创建了一个站点。 如何仅通过我的网络授权我的服务? 我正在寻找一个似乎很常见的问题的安全答案,但事实并非如此。 我在后期阅读了很多答案,想法和各种事情,但我找不到解决方案。 让我们假设我有一个来自MS的Web Api服务(最新的服务)。 所以我必须使用需要消耗它的应用程序。 我们来定义两个场景。 场景1: 在同一个IIS中,我有一个ASP.NET MVC 3/4,其特点是所有MVC工作都在客户端,由AngularJS制作,因此App直接从JavaScript指向Web Api服务。 场景2: 我有一个第三方应用程序直接指向Web Api服务,并且位于其他网络/站点/任何但相关的任何内容。 所以,我的问题是: 如何validation两个系统,以便Web Api服务提供对两个系统的访问(我不在乎是否相同),并且不向例如具有REST客户端的人提供访问权限,并且登录到具有用户/通行证授权的网站? 我希望这两个例子都能说明我感兴趣的观点。 请在下面评论您需要以更好的方式改进此问题! 顺便说一句,不,不能使用混淆。 我想到了一个令人耳目一新的令牌,但我无法理解。

AsyncCallBack异步完成

我最近注意到了以下模式,但我并没有完全掌握CompletedSynchronously属性的用法: IAsyncResult channelOpenResult = channel.BeginOpen(new AsyncCallback(OnOpenCompleteChannel), channel); if (channelOpenResult.CompletedSynchronously) { CompleteOpenChannel(channelOpenResult); } 然后再次回调: void OnOpenCompleteChannel(IAsyncResult result) { if (result.CompletedSynchronously) return; else CompleteOpenChannel(result); } 代码中的某个地方当然有一个function: void CompleteOpenChannel(IAsyncResult result) … 这是一种处理异步调用的方式,具体取决于它是否直接完成? 但是为什么在这种情况下使用它,因为始终会调用AsyncCallback(它会吗?)? 有人可以给出一个同步调用的例子吗?