HTTP 无法注册 URL(远程调试)
Posted
技术标签:
【中文标题】HTTP 无法注册 URL(远程调试)【英文标题】:HTTP could not register URL (remote debugging) 【发布时间】:2014-06-06 12:26:18 【问题描述】:C#,Windows 7。 我编写了一个 AutoCAD 插件并使用远程调试(MS Visual Studio)。我的插件必须作为 WCF 服务工作。 AutoCAD 是非托管应用程序,必须作为我的服务的主机。我正在阅读一本关于 WCF 的书,并尝试使用它。我无法将 acad.exe.config 用于我的服务设置:我没有权限。所以我自己做(我将从我的 xml 文件中读取它们,但稍后,在重构之后)。我的“服务器”代码(此代码由 AutoCAD 开始):
private static void RunServices()
Ap.Document doc = cad.DocumentManager.MdiActiveDocument;
try
Uri address = new Uri("http://localhost:8000/CadService");
BasicHttpBinding binding = new BasicHttpBinding();
binding.Name = "httpBinding";
binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
binding.Security.Mode = BasicHttpSecurityMode.None;
host = new ServiceHost(typeof(CadService));
host.AddServiceEndpoint(typeof(ICadService), binding, address);
host.Open(); // I get an Exception here...
if (doc != null)
doc.Editor.WriteMessage("Service launched.\n");
catch (Exception ex)
if (doc != null)
doc.Editor.WriteMessage("Exception: 0\n", ex.Message);
我得到一个异常(查看代码注释):
Exception: HTTP could not register URL http://+:8000/CadServices/.
Your process does not have access rights to this namespace
(see http://go.microsoft.com/fwlink/?LinkId=70353 for details).
但http://go.microsoft.com/fwlink/?LinkId=70353
页面不存在。我尝试以管理员身份启动 MS Visual Studio 2013(我读到了这个here),但这对我没有帮助(请看下面的 P.S.2)。
附:如果我以管理员身份启动 AutoCAD - 一切正常。 P.S.2 如果我以管理员身份启动 远程调试器 - 一切正常。 但我需要像普通用户一样使用它。我可以在没有管理员权限的情况下启动我的服务(托管在 AutoCAD 中)吗?
【问题讨论】:
【参考方案1】:这可能是因为 AutoCad 没有在 HTTP.SYS 中注册端口所需的权限。在这种情况下,您有两种选择:
-
在管理员模式下启动 Autocad
在 HTTP.SYS 中手动注册端口/端点。为此,有几种工具可用。这是我会使用的:http://www.codeproject.com/Articles/437733/Demystify-http-sys-with-HttpSysManager
让我知道这是否有效
【讨论】:
以上是关于HTTP 无法注册 URL(远程调试)的主要内容,如果未能解决你的问题,请参考以下文章