我目前正在开发一个应用程序,我在其中创建一个 ServiceHost,然后删除它,然后再重新创建它。问题是,一旦我在尝试重新创建服务主机时摆脱它,我就会得到异常“停止/启动后 URI 的注册已经存在。”奇怪的是我有三台独立的主机,一台工作,两台不工作。我假设有些东西没有得到妥善处理,但我不确定为什么。
我正在这样创建主机
host = new ServiceHost(typeof(MyService));
host.Open();
然后像这样摆脱它们
if (host != null)
{
host.Close();
host = null;
}
我也尝试过 abort 而不是 close ,但没有任何运气。
最佳答案
虽然我不确定确切的问题,但我可以给你一些想法和一些解决方法。
如果您在 Windows 7 中工作,则您在托管过程中创建的任何 URL 都必须注册。 Netsh 命令通常可以帮助我们注册和取消注册 URL。
对于注册和注销 URI,您需要拥有管理员权限。
您可以尝试以下方法。
如果您正在运行 exe,请尝试以管理员模式运行它。 (右键单击并选择管理模式)。
如果您尝试使用 visual studio,请尝试以管理员模式重新启动 visual studio 并运行应用。
尝试注销 URI,然后使用 Netsh 重试。
http://saravananarumugam.wordpress.com/2011/03/01/http-could-not-register-url/
可能对你有帮助。
关于c# - 停止/启动后 URI 的注册已经存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6205751/