Tag: web services

Excel加载项未加载带有服务引用配置信息的app.config

我已经编写了一个带有服务引用的应用程序,可以对特定的URL进行Web服务调用,效果很好。 我想将此代码移动到Excel加载项,但我遇到了这个问题: 未处理的exception消息:找不到名为“ConnectivityHttpsSoap12Endpoint”的端点元素,并在ServiceModel客户端配置部分中收缩“Connectivity.ConnectivityPortType”。 这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此名称匹配的端点元素。 问题是我的app.config(没有服务参考信息)没有被加载,因为Excel正在调用我的类库,并且调用应用程序的app.config需要添加服务引用。 但这可以用Excel完成吗? 更好的是,有没有办法从代码加载我的app.config?

如何在.net中调用没有wsdl的Web服务

我必须连接到不提供wsdl或asmx的第三方Web服务。 该服务的URL只是http://server/service.soap 我已经阅读了有关原始服务调用的这篇文章 ,但我不确定这是否是我正在寻找的。 此外,我已经要求wsdl文件,但被告知没有(并且不会有)。 我正在使用带有.net 2.0的C#,并且无法升级到3.5(所以还没有WCF)。 我认为第三方正在使用java,因为这是他们提供的示例。 提前致谢! 更新浏览url时获取此响应: SOAP-ENV:Server Cannot find a Body tag in the enveloppe

如何安排C#代码执行

我正在使用ASP.Net和C#。 我想在特定时间同步某些东西。 我做了一个方法,这样做,它的工作。 但我的问题是如何在特定时间每天调用此方法。 客户不信任任何第三方工具,因此无法使用它。 Windows服务不是一个好的解决方案。 如果我提供网络服务,我应该如何在每天的特定时间拨打电话? 例如,我想每天晚上7点运行方法。

C#相当于php关联数组

我在php中定制购物车应用程序。 在这个应用程序中,我必须将一些部分与另一个C#.net应用程序集成,所以我在php shoppnig购物车中使用webservice。 在其中一个webservice方法中,某些值应作为关联数组传递。 $proxy = new SoapClient(‘www.mywebservice.com?wsdl’); $associative_array= array( ‘abc’=> 1,’def’=>0,’ghi’=>1,’jkl’=>0 ); $proxy->call($sessionId, ‘methodname’, array(‘somevalue’, $associative_array)); 在PHP中工作正常…但问题是我在使用C#.net,我怎么能用C#.net传递关联数组? 我是一个php程序员我认为在C#.net中没有关联数组,并且有人说C#Dictionary可以使用而不是那个,但那不适用于webservice调用 C#代码是 Dictionary map=new Dictionary(); map.Add(“abc”,”1″); map.Add(“def”,”0″); object st = mgs.call(sessionid, “methodname”, new object[] { “somevalue”,map }); 任何人都可以给一些建议???

从WSE 3.0客户端请求中删除WS-Addressing / WS-Security部分

我有一个简单的C#Web服务代理类,我用WSDL.exe创建。 我在远程Web服务上调用一个方法,它包含了一堆我不想要的WS-Addressing和WS-Security头文件(并且服务器正在阻塞)。 以下是原始肥皂请求的示例: urn:uuid:22f12267-b162-4703-a451-2d1c5c5a619b http://example.com/wstest 2009-04-15T16:27:25Z 2009-04-15T16:32:25Z blah blah2 但我不关心WS-Addressing / WS-Security的东西 。 我没有做任何事情来包括它。 .NET WSE 3.0软件包似乎默认添加它们。 有没有办法摆脱这些? 我在代理对象上看不到允许我删除这些部分的属性。 我试过了: proxyObject.Addressing.Clear(); proxyObject.Security.Clear(); 当我调用我的Web服务方法时,这些会导致空引用exception。 我希望SOAP请求看起来像这样: blah blah2 提前致谢

DTO与序列化持久实体

我很想知道社区对这个问题的看法。 我最近遇到了NHibernate / WCF场景(实体在服务层持久存在)的问题,并意识到我可能在这里走错了方向。 我的问题很明显,当在Web服务(在这种情况下为WCF)后面使用持久对象图(NHibernate,LINQ to SQL等)时,您更喜欢通过网络发送这些实体吗? 或者你会创建一组较轻的DTO(没有循环引用)?

如何将HttpWebRequest与GET方法一起使用

我有以下代码,当方法是“POST”时工作正常,但更改为“GET”不起作用: HttpWebRequest request = null; request = HttpWebRequest.Create(uri) as HttpWebRequest; request.ContentType = “application/x-www-form-urlencoded; charset=UTF-8”; request.Method = “POST”; // Doesn’t work with “GET” request.BeginGetRequestStream(this.RequestCallback, null); 我用“GET”方法得到一个ProtocolViolationExceptionexception。 编辑:看了一下使用Reflector后,似乎有一个显式检查“GET”方法,如果设置为它会抛出exception。 Edit2:我已经将我的代码更新为以下内容,但是当我调用EndGetResponse()时它仍会引发exception if (request.Method == “GET”) { request.BeginGetResponse(this.ResponseCallback, state); } else { request.BeginGetRequestStream(this.RequestCallback, state); } 在我的函数ResponseCallback中,我有这个: HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asyncResult); 这也引发了exception。 回答 上面的代码现在可以工作,我忘了取出Content-Type行,导致exception被抛出。 +1来调整和回答Jon。 工作代码如下: HttpWebRequest request = null; request […]

使用C#HttpHandler webservice创建PNG图像

我希望能够创建一个简单的PNG图像,比如使用基于ac#web的服务生成图像的红色方块,从 HTML元素 。 一些示例HTML: 是否有人可以拼凑一个简单的(工作)C#课程来让我入门? 一旦关闭和开始,我确信我可以完成这个以实际做我想要它做的事情。 最终游戏是为数据驱动的网页创建简单的红色/琥珀色/绿色(RAG)嵌入状态标记,以显示性能指标等* 我希望它能使用PNG,因为我预计未来会使用透明度* ASP.NET 2.0 C#解决方案请…(我还没有生产3.5的盒子) TIA 解 rectangle.html https://stackoverflow.com/questions/887985/create-png-image-with-c-sharp-httphandler-webservice/rectangle.ashx rectangle.cs using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Web; public class ImageHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { int width = 600; //int.Parse(context.Request.QueryString[“width”]); int height = 400; //int.Parse(context.Request.QueryString[“height”]); Bitmap bitmap = new Bitmap(width,height); Graphics g = Graphics.FromImage( (Image) […]

从c#服务器端调用asmx:可以在client元素中找到匹配此契约的端点元素

我在srv1上写了一个asmx webSerivce。 我在srv2上写了一个asp.net (原始文本:一个asp.net)项目的bll项目 。 两者都托管在同一个Web域下 我想从asp.net的bll项目中调用asmx(原文:asp.net(c#)代码)。 1)我添加了一个Web引用,但找不到任何教程如何真正调用引用的服务。 我试过了: private void GetTemplateComponentsData() { var service = new ServiceReference.GetTemplateParamSoapClient(); TemplateParamsKeyValue[] responsArray = service.GetTemplatesParamsPerId(id); foreach (var pair in responsArray) { TemplateComponentsData.Add(pair.Key, pair.Value); } } 但在执行第一行时出现以下错误: 无法在ServiceModel客户端配置部分中找到引用合同“ServiceReference.GetTemplateParamSoap”的默认端点元素。 这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素。 我错过了什么? 2)我将asp.net proj和asmx从一个域迁移到另一个域。 有没有办法相对引用这个webservice?

拦截来自客户端的Web服务的SOAP消息

我有一个与Web服务通信的客户端。 我与之通信的类是通过wsdl.exe生成的C#类。 我现在想记录所有传入和传出的消息。 到目前为止我所做的是编写一个inheritance自动生成的C#类的类,并重写了GetReaderForMessage方法。 这样我可以或多或少地像这样访问传入的消息: protected override XmlReader GetReaderForMessage(SoapClientMessage message, int bufferSize) { System.Xml.XmlReader aReader = base.GetReaderForMessage(message, bufferSize); System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); doc.Load(aReader); string content = doc.InnerXml.ToString(); System.Xml.XmlReader aReader2 = System.Xml.XmlReader.Create(new System.IO.StringReader(content)); return aReader2; } 显然我对这个解决方案不太满意,因为基本上我正在创建两个xml读者。 一个用于读取SOAP消息的内容,另一个用于返回方法调用方。 另外,我不能用GetWriterForMessage方法做同样的事情。 但可能我只是做起来太困难了。 例如,是否可以直接读取SoapClientMessage对象的内容? 我已经阅读了一些文章,建议我应该在这里使用SoapExtensions,但是从我能理解的情况来看,这只有在我创建的’客户端’本身就是一个Web服务时才会起作用,在这种情况下它不是。 有什么建议?