Tag: web services

使用reflection来调用ASP.NET Web服务

假设我有一个ASMX Web服务MyService。 该服务有一个方法,MyMethod。 我可以在服务器端执行MyMethod,如下所示: MyService service = new MyService(); service.MyMethod(); 我需要做类似的事情,服务和方法直到运行时才知道。 我假设反思是解决这个问题的方法。 不幸的是,我很难让它发挥作用。 当我执行此代码时: Type.GetType(“MyService”, true); 它抛出此错误: 无法从程序集“App_Web__ktsp_r0,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null”加载类型“MyService”。 任何指导将不胜感激。

如何从C#webservice生成WSDL文件

我已经创建了这样的WebService: [WebService(Namespace = “http://ns”)] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class GroupManagerService : WebService { public GroupManagerService() { } [WebMethod] public bool MyMethod(string loginname, string country) { // code here… } } 是否可以为此代码生成WSDL文件而无需连接到正在运行的服务? 我搜索并找到了有关SvcUtil.exe和wsdl.exe的信息,但这些信息仅在从正在运行的WebService检索WSDL时才起作用。 (对于java ,有一个名为java2wsdl的工具,是否有等效的c# ?) :更新: 此问题的上下文是我要向SharePoint添加新的CustomWebService,它应该使用SharePoint上的_vti_bin文件夹中的WSPBuilder进行部署。 另请参阅我在SharePoint.SE上的post 。 我想自动生成(使用msbuild命令) ‘MyServicewsdl.aspx’和‘MyServicedisco.wsdl’ ,它必须放在_vti_bin文件夹中。 也许我错过了一些东西? svcutil.exe的输出是: bin\Debug>SvcUtil.exe MyWebService.dll Microsoft (R) Service Model Metadata Tool [Microsoft (R) Windows […]

动态C#.NET Web服务

我在C#ASP.NET项目中使用一个类来允许用一些随机脚本语言编写的脚本动态地公开webservice方法 – 换句话说,脚本应该能够公开任何具有任何签名的任何名称的方法(只要因为它通过这个SOAP接口对外界是有效的(能够随意添加和删除它们,而不需要硬代码更改),因此我需要能够在C#中创建一个Web服务类,同时能够在运行时动态添加和删除方法。 现在,到目前为止我能够提出的最好的计划是(运行时)生成C#代码来表示web服务,使用System.Reflection.Emit编译它然后在运行时加载程序集 – 所有这些都是脚本添加的或从服务中删除方法(不应经常发生,请注意)。 有没有人有比这更好的主意?

添加SOAP:使用WSE 3.0的HEADER用户名和密码

我已经成功创建了一个在不使用身份validation时正常工作的WS客户端。 但是,服务器(WebSphere)现在需要添加一个ws-security用户名令牌,而我很难做到这一点。 生成的SOAP消息应该看起来像这样: foo bar foooooobar== 2010-01-25T13:09:24.860Z … 我已下载并安装了Microsoft的WSE 3.0 SDK,并在我的Visual Studio 2005项目中添加了对DLL的引用。 我现在可以访问Microsoft.Web.Services3。*命名空间,但我目前难以理解如何继续。 客户端代码是由Web引用自动生成的,因此我只做了少量工作就将消息发送到未经身份validation的服务器: WS.FooResultHttpService ws = new WS.FooResultHttpService(); ws.Url = “http://foo.bar.baz”; ws.SendSomething(message); 我刚刚开始使用Microsoft.Web.Services3.Security.Tokens.UsernameTokenManager进行调查,但到目前为止我还没有能够获得任何启动和运行。 任何提示将不胜感激,因为我似乎无法在网上找到任何好的食谱。 谢谢!

如何从Web服务返回多个值?

我对Web服务世界很陌生,所以请耐心等待。 我正在使用.asmx文件在Visual Studio 2010中创建一个非常简单的Web服务。 这是我正在使用的代码: namespace MyWebService { [WebService(Namespace = “http://www.somedomain.com/webservices”)] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] public class Service1 : System.Web.Services.WebService { [WebMethod] public string simpleMethod(String str) { return “Hello ” + str; } } } 当我调用它并为str参数输入值“John Smith”时,它返回: Hello John Smith 我的问题是,为Web服务方法返回超过1个值的最佳做法是什么? 如果值都是相同的数据类型,我应该使用数组吗? 如果值包含不同的数据类型,我需要创建自定义类吗?

完成使用后,是否需要关闭.NET服务引用客户端

我试图找出在完成使用后关闭.net服务引用客户端是否有必要。 几乎我在网上遇到的所有例子似乎都没有,但生成的客户端实现了IDisposable,因为它确实打开了与服务的连接,我的直觉告诉我你需要关闭那个连接。完成它。 这是我从http://msdn.microsoft.com/en-us/library/bb386386(v=VS.90).aspx中提取的代码示例: private void button1_Click(System.Object sender, System.EventArgs e) { ServiceReference1.Service1Client client = new ServiceReference1.Service1Client(); string returnString; returnString = client.GetData(textBox1.Text); label1.Text = returnString; } 我认为你至少应该在这个方法结束时调用client.Close(),最好还是在using语句中包装第一行。 我只是希望得到一些反馈,以找出最佳实践。

开发一个简单的Windows系统托盘桌面应用程序来使用.NET Web服务

我需要开发一个简单的Windows系统托盘桌面应用程序来使用.NET Web服务,但我精通PHP,而且我在桌面应用程序方面几乎没有背景。 您建议我使用什么平台,最好是学习曲线非常低? 系统托盘应用程序将显示(在上下文菜单中)从.NET Web服务收到的新事件通知的计数器; 并将所有事件日志写入文本文件。 我已经在考虑使用Adobe AIR或C#.NET,但我想知道是否有更好的选项,我可以快速学习开发应用程序。

什么导致Web服务URL和命名空间之间的差异?

我有一个包含Web服务的ASP.NET Web项目。 当我运行该服务时,它会使用类似于http://api.example.com/game/service.asmx的URL将我带到显示所有公开方法的页面。 在Web Service的代码中,有些方法具有以下属性: [WebService(Namespace = “http://webservices.example.com/GameServices/Game1”)] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class Game1 : System.Web.Services.WebService { // code } 我对为什么具有webService属性的类上的命名空间与Web服务的路径不同有点困惑。 该命名空间来自哪里? 它刚刚组成了吗?

如何通过HTTP POST从C#调用Web服务

我想编写一个ac#类,它将创建一个连接到运行到www.temp.com的web服务,向方法DoSomething发送2个字符串参数并获取字符串结果。 我不想使用wsdl。 由于我知道网络服务的参数,我只是想做一个简单的电话。 我想在.Net 2中应该有一种简单易行的方法,但我找不到任何例子……

实现使用SSL上的Web服务的C#客户端?

所以我已经将一个ServiceReference添加到C#控制台应用程序中,该应用程序调用从Oracle公开的Web服务。 我已经完成了所有设置,当它不使用SSL(http)时它就像桃子一样。 我现在正尝试使用SSL进行设置,并且我遇到了将其添加到服务引用(甚至Web引用)的问题。 例如,当我尝试将该服务添加到Visual Studio时,该服务所在的URL(https)未返回相应的Web方法。 底层连接已关闭:发送时发生意外错误。 从传输流中收到意外的EOF或0字节。 元数据包含无法解析的引用:’ https ://srs204.mywebsite.ca: 7776/ SomeDirectory/ MyWebService?WSDL ‘ 我遇到的另一个窘境是证书管理和部署。 我有大约1000个外部客户端站点需要使用这个小实用程序,他们需要安装在相应的证书库中的证书才能连接到Web服务。 不确定处理此问题的最佳方法。 他们需要在根商店吗? 我花了几个小时在网上查看各种选项,但无法在任何地方得到一个干净的答案。 总而言之,我在这里有几个问题: 1)在Visual Studio中使用SSL设置Web服务的人有什么好的链接吗? 2)我应该如何注册证书? 它应该存在哪个商店? 我可以使用像CertMgr这样的东西进行注册吗? 必须有一本好的书/教程/任何能够向我展示设置此类内容的常见良好实践。 我似乎无法找到它!