问题描述
您好:)
我在使用Javascript开发metro风格的app时遇到了麻烦。 T 我尝试访问WCF服务器时发生了
问题。
这是我在VS 2011 Express上开发的C#.NET代码。
公共密封类StarSignCSLibrary
{
public StarSignCSLibrary(){}
public string sayHelloWorld()
开放的URI =新URI(" ");
Uri uri = new Uri("http://5c559376b20a4def8e6204094010b429.cloudapp.net/StarSignService.svc");
ChannelFactory< iStarSign>工厂=新的ChannelFactory< iStarSign>(新basicHttpBinding的(),
&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ; new EndpointAddress(uri));
iStarSign proxy = factory.CreateChannel();
字符串结果= proxy.sayHello();
(代理为IDisposable)。dispose();
返回结果;
}
这是我的界面文件。
[ServiceContract]
iStarSign接口
{
[OperationContract]
&NBSP;&NBSP;&NBSP; …
}
以上代码引用Javascript代码
var lib = new StarSignCSLibrary.StarSignCSLibrary();
$
var res = lib.sayHelloWorld();
命名空间中没有问题但是当我尝试执行该函数时C#,javascript运行时抛出错误
&b $ b
“JavaScript runtime error: ECall methods must be packaged into a system module.”
如果函数只返回一个像‘返回“ xxxx”’这样的字符串就行了。我想知道上面的.NET库不支持Metro风格应用,
,还有其他方式可以访问WCF服务器。
PS C#功能在VS 2010上正常工作
谢谢,
Sungsoo Moon
推荐答案
您需要在项目中使用"添加服务引用"来访问Web服务。从您的代码片段看,您似乎正在尝试使用服务代理代码。
You need to use 'Add Service reference' in your project to access webservices. From your code snippets it looks like you are trying to use service proxy code.
-Jeff
这篇关于Javascript运行时错误:必须将ECall方法打包到系统模块中:尝试使用C#组件时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!