Tag: web services

我从javascript调用ASMX Web服务,它正在预防我的会话超时

编辑2: 我根据计划或最终用户的请求在服务器端运行后台进程,我需要向所有用户显示图像以通知他此进程正在运行,或者在进程运行时取出映像完了。 编辑2完成 我正在调用一个ASMX Web服务,该服务位于我的IIS上通过javascript托管的网站中,它正在预防我的会话超时。 为什么从客户端到Web服务的调用会阻止我网站上的会话超时? 有没有办法防止它? 如果您需要更清楚我的问题或更多细节,请告诉我。 编辑1: 根据@ Rene147在下面的答案中提供的信息和链接以及一些谷歌搜索,我在我的网络服务方面尝试了以下内容: [WebMethod(EnableSession=false)] public string GetSummary() { HttpContext.Current.Response.Cookies.Remove(System.Web.Security.FormsAuthentication.FormsCookieName); return “something”; } 但事实certificate, HttpContext.Current.Response.Cookies总是空的。 任何提示?

设计具有表示层和基于Web服务的API的系统

我们正在设计一个系统,其function在表示层和公开的API层基本相同。 我的问题是使用什么技术/策略,以便我们可以在考虑性能的情况下从代码中获得最多的重用? 这是一个简化的例子: 用户可以通过Web表单添加客户 。 这将触发Customer.Create()方法。 API使用者/用户可以通过SOAP / HTTP-POST将客户添加到将调用Customer.Create()方法的Web服务。 想象一下这些层: PRESENTATION | | WEB SERVICE API (Customer.Create() is available here | | FACADE Business Object Interface – Customer.Create() signature is here | | BUSINESS Business object – Customer.Create method() is fleshed out here | | DATA ACCESS – Writes data 表示层SOAP调用Create()Web方法,该方法调用Facade的Create()方法,该方法调用业务对象的Create()方法,该方法通过数据访问层连接。 问题: 是否关注在表示层中使用API​​的Web服务的性能,或者是否有将表示层直接连接到外观的替代方法? 如果是这样,使用什么技术(WCF,远程处理,Web服务等)? 如果您需要更多说明,请与我们联系。 […]

Web服务请求返回null

我试图调用托管在java服务器上的Web服务。 我通过Visual Studio提供的Web服务创建工具创建了类。 当我调用该方法时,我可以在Fiddler中看到它正在返回有效数据。 但是,在我的C#代码中,我的结果为null。 任何帮助,将不胜感激。 C#调用代码: RuleValidationResponseRule[] ruleResponse = rulesWebService.RuleValidation(ruleData, “LO”); Web Service生成的代码: [System.Web.Services.Protocols.SoapDocumentMethodAttribute(“http://www.example.org/LathamInt/RuleValidation”, RequestNamespace=”http://www.example.org/LathamInt/”, ResponseNamespace=”http://www.example.org/LathamInt/”, Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] [return: System.Xml.Serialization.XmlArrayAttribute(“ruleValidationResp”, Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] [return: System.Xml.Serialization.XmlArrayItemAttribute(“rule”, Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=false)] public RuleValidationResponseRule[] RuleValidation([System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] RuleValidationRuleData ruleData, [System.Xml.Serialization.XmlAttributeAttribute()] string company) { object[] results = this.Invoke(“RuleValidation”, new object[] { ruleData, company}); return ((RuleValidationResponseRule[])(results[0])); } XML传递给webservice(来自Fiddler): 从服务返回的XML(来自Fiddler): 3″ post=”3 > 3″/> C#生成代码中的响应定义: /// […]

将SOAP信封发布到MS Dynamics NAV Web服务

我正在尝试使用HttpWebRequest,HttpWebResponse将SOAP Envelope直接发布到Dynamics NAV Webservices。 码: private void button1_Click(object sender, EventArgs e) { string requestString = LoadData(); HttpWebRequest request; HttpWebResponse response = null; string url = “http://localhost:7047/DynamicsNAV70/WS/Page/nav_Item”; byte[] requestBuffer = null; Stream postStream = null; Stream responseStream = null; StreamReader responseReader = null; request = (HttpWebRequest)WebRequest.Create(url); request.ProtocolVersion = new Version(1,1); request.Method = “POST”; //request.Headers.Add(“SOAPAction”, @”urn:microsoft-dynamics-schemas/page/nav_item:create”); request.Headers.Add(“Action”, […]

Paypal API和Paypal的示例代码?

https://www.x.com/community/ppx/code_samples 示例代码返回ACK,但正确的响应在哪里? 例如Getbalance,示例代码返回ACK https://cms.paypal.com/cms_content/US/en_US/files/developer/nvp_GetBalance_cs.txt 但文档显示它返回其他值? https://www.x.com/docs/DOC-1186

基于证书的身份validation的基础

我搜索了很多,并找到了很多关于如何在wcf中实现基于证书的身份validation的答案。 但我的问题与其基本原理有关。 在生产中实施基于证书的身份validation时,客户端是否提供了服务器需要在其受信任的人员存储中添加的证书? 或者服务器提供证书(由服务器签名)。 我想在配置wcf服务器时,我们只需配置证书位置和存储。 我们永远不会将它与任何域绑定。 因此,出示此证书的任何客户都可以访问我的服务。 如果证书需要绑定到域。 他们为什么不能只允许来自该域的所有请求。 当客户端调用wcf服务时,它会显示其证书。 该证书是否只带有公钥? 并且这个证书可以被窃取(因为它在网络上传播)并被黑客用来使用Web服务。 我知道ssl如何炒作。 在ssl的情况下,浏览器负责所有这些东西但是在wcf服务的情况下(当我们只想允许特定客户端访问我们的服务时)如何管理它。 提前致谢。 让我简单一点: 我想创建一个Web服务,我希望三个客户端(A,B和C)可以使用它。 我想通过证书validation这三个客户端。 在设置时,这些客户是否需要将证书发送给我。 或者我必须为他们创建证书? 客户端是否也会共享他们的私钥(在设置时) 我是否需要将这些证书放入受信任的人员商店? 当他们请求Web服务时,他们将出示他们的证书(仅限公钥)。 如果他们只使用公钥呈现,黑客可以窃取此公钥并请求我的网络服务。 我的web服务如何区分黑客/实际客户端。

WebApi 2 – RAM使用情况

我在共享主机上运行我的Web服务,它在应用程序池上提供高达100MB的RAM。 我的Web服务有大约12个控制器并使用异步entity framework+使用缓存: https : //github.com/filipw/AspNetWebApi-OutputCache 为了测试,服务响应非常少量的数据 – 例如,20个客户的列表,包括他们的地址和联系人数据,没有图像等。 启动(第一次请求)后,Web服务在另外几个请求后使用最多144MB RAM,大约250-350MB使用RAM – 比服务器回收我的服务。 这个数据量和控制器的RAM使用率是否正常? 或者是否存在优化问题? 我是WebApi的新手,我正在研究我的论文,但我尝试使用Entity Framework等对数据库进行异步访问。 编辑:我在服务器上设置32位模式后,RAM使用率约为100-130Mb,这比以前明显更好,但我仍然不确定它是否是好结果。 在这里,我包括我的控制器样本,以获取所有客户列表: // READ ALL -GET // ROUTE /api/Customers/ [HttpGet] [CacheOutput(ClientTimeSpan = 30, ServerTimeSpan = 86400)] public async Task GetCustomers() { using (var db = new ApplicationDbContext()) { var customers = await db.Customers .Include(s => s.Address) .Include(s => […]

如何在不发出http请求的情况下在c#中生成WSDL

问候,我想写一个unit testing,以确保我们的Web服务没有更改上一个已知发布版本的WSDL。 原因是因为对WSDL中对象的任何更改都将导致使用Apache Axis的客户端失败。 即使您所做的只是添加一个不需要的属性。 因此,如果存在更改,则需要提醒开发人员,因为产品管理需要向客户端传达有关更改的信息,以便他们可以在发布新WSDL时重新编译其存根。 所以我希望有这样的东西: [Test] public void TheWSDLHasNotChanged(){ XmlDocument currentWSDL = SomeMysteryServiceIDontKnowAbout.GetWSDLForWebServiceClass(typeof(UserService)); XmlDocument existingWSDL = new XmlDocument().Load(“ExistingWsdl.wsdl”); Assert.That(currentWSDL, Is.Equal.To(existingWSDL)); } 出于显而易见的原因,我不想向Web服务器发出请求(在运行unit testing时可能会运行甚至不运行)。

从同一网络上的另一台PC测试wcf webservice

我在visual studio 2010上创建了一个简单的wcf webservice。 我在ASP.NET开发服务器上运行它。 我尝试使用本地URL在浏览器上调用本地的简单GET服务: http://localhost:15021/MyService.svc/getData/test 这有效,我得到了正确的JSON结果。 我也试过小提琴手和它的工作。 我想从连接在同一网络上的另一台计算机上调用它。 我从cmd获得了我的本地IPV4,并尝试在另一台PC上用它替换localhost http://10.0.0.14:15021/MyService.svc/getData/test 但是我收到error 502: Connection failed 如何在同一网络上从另一台PC / Mobile调用我在ASP.NET开发服务器上运行的服务? 谢谢

Web服务错误“提供的URI方案’http’无效; 预计’https’。“

我有一个服务调用导致以下错误:“提供的URI方案’http’无效;预期’https’。” app.config值: 我已经尝试过Https://但是内部的所有内容都不会指望我需要这个,除此之外它还会产生客户端/服务器错误。 我也试过改变绑定类型 我还查看了这里和asp.net上的其他论坛post,所有人似乎都指向使用Transport并传递我在我的代码中执行的客户端凭据,如下所示: client.ClientCredentials.UserName.UserName = “XXXXX”; client.ClientCredentials.UserName.Password = “XXXXX”;