我正在将使用广泛.NET Remoting的遗留系统转换为更现代的通信框架,我试图让它在任何重大修订之前在本地运行。我的本地设置为Visual Studio 2013,我想托管IIS Express。
我正在尝试使用此示例here并从NullReferenceException
收到Props
提取凭据。看来ChannelServices.GetChannelSingProperties()
已返回null
。
// GetChannelSinkProperties returns null
IDictionary Props = ChannelServices.GetChannelSinkProperties(service);
// NullReferenceException below
Props["credentials"] = CredentialCache.DefaultCredentials;
我会继续这样做,但我希望那里的专家可以帮助我。
更多详情:
我的设置是Visual Studio 2013,
创建了一个新的控制台应用程序,在此项目中放置了客户端和app.config
创建一个空的Web应用程序,在此项目中放置server和web.config
Visual Studio在localhost:53645上托管我的网站,我更改了客户端app.config以同时命中localhost和localhost:53645。
这应该有用,对吗?
答案 0 :(得分:1)
是的它应该有效。您的配置(服务器或客户端)有问题。最有可能的问题是您的服务类型。如果您刚刚从示例中复制了web.config和app.config,您可能会错过服务> wellknown>类型,您可以使用服务类的类型名称(包括命名空间!)和程序集名称(您可能不会像示例中那样调用ServiceClass。如果是这种情况,只需将服务类型正确设置(在服务器和客户端配置中)为“YourNamespace.YourServiceClass,YourServiceAssemblyName”和你应该没问题。当然,在客户端配置中,url应该只是http://localhost:53645/SAService.pm。