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(远程调试)的主要内容,如果未能解决你的问题,请参考以下文章

远程调试nodejs

如何远程调试VS网站

Azure 远程调试:无法从 HRESULT 启用远程调试异常:0x89710023

来自 VS2013 的远程调试无法连接到远程调试监视器

vs2010远程调试断点无效问题

远程调试:无法连接到远程虚拟机。连接超时