Tag: web services

是否可以在MatLab中使用.NET应用程序?

我觉得在C#中有家,我将设计一个控制台应用程序,它将从Web服务中获取一些数据。 我想让一组科学家使用MatLab中的数据。 实现这一目标的一种方法是将其存储在HDD上的文件中,然后将其内容加载到MatLab中。 但这让我想到了。 是否可以在MatLab中创建一个函数来调用在C#中创建的EXE,以便我的科学朋友可以去: a = GetMeSomeData() 并使用服务的响应填充变量a ? (当然,我会使用我的C#代码格式化数据,因此它适合MatLab的矩阵模型。) 在我开始研究之前,我已经完成了一些谷歌搜索,但我发现的大部分内容都是关于MatLab(2007)的旧版本,并且它说了一些关于创建COM对象的内容。

结合URI和路径

我正在改造应用程序以使用PHP HTTP代理(用于缓存)而不是实际的API服务器,应用程序当前将服务器URI和路径与代码组合在一起: methodUri = new Uri(apiUri, method.Path) 哪里: apiUri =“ http://api.eve-online.com/ ”(System.Uri对象) method.Path =“/ char / SkillIntraining.xml.aspx”(string) 上述陈述的结果是 “http://api.eve-online.com/char/SkillIntraining.xml.aspx” (System.Uri Object) 要使用PHP HTTP代理,必须按如下方式更改请求 apiUri =“ http://www.rs.co.uk/eproxy.php ”(System.Uri对象) method.Path =“/ char / SkillIntraining.xml.aspx”(string) 我期待的输出是: “http://www.rs.co.uk/eproxy.php/char/SkillIntraining.xml.aspx” (System.Uri Object) 但是我得到的输出是: “http://www.rs.co.uk/char/SkillIntraining.xml.aspx” (System.Uri Object) 我知道这是构造函数Uri(Uri,string)的正确function,我的问题是什么是更好的函数或构造函数来使用它来获得我期望的输出? 我已经尝试删除method.Path中的前导“/”,将其从绝对路径带到相对路径但是没有帮助。 注意:下面的两个解决方案都可以工作,但是System.UriBuilder提供了一个更强大的机制来组合URI和路径,在我的情况下,与使用System.Uri相比,对资源的更改更少。 如果我选择我会将两个答案标记为正确。

Exchange Web服务托管API:访问其他用户项目

是否可以访问除登录用户之外的其他Exchange帐户的文件夹和项目? 我可以通过Exchange Web服务托管API执行此操作吗?

在方法/数据成员中添加对WCF的限制

我是WCF的新手,我尝试向数据成员添加限制。 例如,这种方法: [DataMember] public string StringValue { get { return stringValue; } set { stringValue = value; } } 我想设置最大和最小长度。 我知道如何将限制添加到XML代码中 但有没有办法直接从代码中添加限制?

WCF服务引用从WSDL生成void方法

这是我第一次尝试使用WCF,所以我猜我做错了。 我正在尝试访问由WSDL定义的SOAP服务http://confluence.atlassian.com/rpc/soap-axis/confluenceservice-v1?wsdl我正在使用VS2010,我在项目中添加了一个服务引用并将其指向那里的URL(或者更确切地说,我们的内部网安装),但是当我使用对象浏览器查看服务时,接口上的操作是没有参数的所有void方法。 似乎WCF没有正确读取类型信息。 它没有给出错误,但它提供了大量的警告,如下所示: 警告1自定义工具警告:操作中名为InvalidSessionException的故障无法导入getPermissions。 不支持的WSDL,故障消息部分必须引用一个元素。 此错误消息不引用元素。 如果您具有对WSDL文档的编辑权限,则可以通过使用“element”属性引用schema元素来解决问题。 Z:\ TestLibrary \ Service References \ Confluence \ Reference.svcmap 1 1 TestLibrary 警告2自定义工具警告:未处理命名空间“ http://schemas.xmlsoap.org/wsdl/soap/ ”中的可选WSDL扩展元素“body”。 XPath:// wsdl:definitions [@ targetNamespace =’ http ://confluence.atlassian.com/rpc/soap-axis/confluenceservice-v1′] / wsdl:binding [@ name =’confluenceservice-v1SoapBinding’] / wsdl: operation [@ name =’getPermissions’] / wsdl:input [@ name =’getPermissionsRequest’] Z:\ TestLibrary \ Service References \ Confluence \ Reference.svcmap […]

属性名称与类名匹配时要执行的操作

在我们的C#代码中,我们有一个名为Project的类。 我们的基础BusinessObject类(所有业务对象都inheritance自)定义了一个属性: public Project Project { get; set; } 只要我们保持在C#代码库中,这通常不是问题。 但是,这些业务对象类通过网络在Web服务中公开。 某些消费语言(例如Flex的动作脚本)无法处理具有与其类同名的属性。 这个命名冲突发生在我们代码中的所有地方。 有时,更改属性或类的名称很容易。 有时它真的很难。 我们绞尽脑汁,无法想出一个很好的标准方法来处理这个问题。 可以将Project类重命名为ProjectType或ProjectInfo,但这很丑陋并且会破坏我们所有的消费者现有代码。 我们可以保留类型名称相同并将属性的名称更改为ProjectInfo,但这会导致同样的问题。 有没有人对这种情况有任何指导或最佳做法? 编辑: 回应一些建议: 方法不会通过电线暴露,因此我们不能使用方法。 我更喜欢标准的命名约定,它也符合微软自己的命名标准。 可以选择为Flex公开不同的合同。 但是,我们正在使用Weborb for Flex interop。 Weborb使用reflection来精确匹配属性名称,而不是使用XML或SOAP序列化。 如果有人了解有关Weborb的自定义序列化的更多信息,那将会很有帮助。 编辑#2: 作为参考,我们最终将属性重命名为: public Project ProjectInfo { get; set; }

肥皂错误:“服务器无法处理请求”“对象引用未设置为对象的实例”

当我在本地IIS中向我的服务发送SOAP请求时,一切正常。 当我将SOAP请求发送到在另一台主机上的IIS上运行的同一服务时,一切正常。 但是当另一个程序员向我的服务发送SOAP请求时,他通常会得到正确的响应,除了返回的服务中的一个方法: soap:Server Server was unable to process request. —> Object reference not set to an instance of an object. 我需要理解为什么他会收到这个错误。 他的SOAP请求与SOAP Request完全相同,但我的工作却没有。

C#Web服务中的加密

我正在寻找一种简单的方法来加密我在C#Web服务中的肥皂通信。 我正在研究WSE 3.0,但似乎微软放弃了对它的支持,因此使用它并不简单。 看来WCF可能是一个选项,但我不想从.NET 2.0升级。 任何简单 ,直接的加密方法?

异步Web服务调用是否始终调用AsyncCallback?

我正在从C#应用程序进行异步Web服务调用: { //Put UI in ‘loading’ state … //Now call web service webServiceProxy.BeginMyMethod(param, new AsyncCallback(MyCallback), null); } private void MyCallback(IAsyncResult res) { … //process result // Put UI back in normal state (yes I’m marshalling back to the UI thread) } 主线程将应用程序置于“等待”模式,然后回调函数的结束重新启用控件。 我偶尔会看到一个错误,UI在加载模式下永远陷入困境。 现在回调代码中可能只有一个错误(那里有相当多的错误),但我对社区的问题是: “MyCallback”是否值得被称为? 假设“BeginMyMethod”没有抛出exception,我可以确定MyCallback会被执行吗? 我在BeginXXX函数返回的IAsyncResult上看到“CompletedSynchronously”和“IsCompleted”,但我不确定这是否重要。

通过从web.config中读取来更改Web服务的URL

我有一个使用asmx Web服务的WCF应用程序。 我在应用程序的一百万个地方使用Web服务: public string LogOnUser(string username, string password, string db) { var wsi = new ASMXServiceInterface(); return wsi.LogIn(); } public string GetNotes(string username, string password, string db) { var wsi = new ASMXServiceInterface(); return wsi.GetNotes(); } etc, etc etc… 当然我想在构造函数中设置服务的url,但是它在reference.cs中自动生成,如果我在那里更改它,它可以工作,但如果我更新我的引用(我会)它丢失,我必须手动再来一遍: /// public ASMXServiceInterface() { this.Url = System.Web.Configuration.WebConfigurationManager.AppSettings[“RQTCSServiceURL”]; } Web服务URL需要是动态的,因为它的不同版本已经实现。 如何在我的WCF项目中设置我的Web服务的URL一次,这样可以在web.config中更改服务的url,而无需在reference.cs中进行更改?