必须将ECall方法打包到系统模块中

必须将ECall方法打包到系统模块中

本文介绍了Javascript运行时错误:必须将ECall方法打包到系统模块中:尝试使用C#组件时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好:)

我在使用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.

请参阅:
http://blogs.msdn.com/b/piyushjo/archive/2011/09/22/wcf-in-win8-metro-styled-apps-absolutely- supported.aspx

 

-Jeff


这篇关于Javascript运行时错误:必须将ECall方法打包到系统模块中:尝试使用C#组件时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-15 05:47