c# - 在没有 UAC/管理员权限的情况下托管 WCF 应用程序

标签 c# wcf

我编写了一个托管 WCF 服务的应用程序。 我尝试使用此配置运行应用程序。

<?xml version="1.0"?>
<configuration>
    <system.serviceModel>
        <services>
            <service name="MyApp.Service" behaviorConfiguration="ServiceBehavior">
                <host>
                    <baseAddresses>
                        <add baseAddress="http://localhost:8000/service"/>
                    </baseAddresses>
                </host>
                <endpoint address="" binding="wsHttpBinding" contract="MyApp.IService"/>
                <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
            </service>
        </services>
        <behaviors>
            <serviceBehaviors>
                <behavior name="ServiceBehavior">
                    <serviceMetadata httpGetEnabled="true"/>
                    <serviceDebug includeExceptionDetailInFaults="False"/>
                </behavior>
            </serviceBehaviors>
        </behaviors>
    </system.serviceModel>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>

但这导致应用程序需要以管理员身份运行。
是否可以在没有管理员权限的情况下运行此应用程序?(如果可能,仅更改配置。)此外,我还需要在 Visual Studio 中添加服务引用以编写客户端程序。如果可能,请保留应用程序可以在 Visual Studio 2010 中添加服务引用。

最佳答案

如果您想将其保留在 HTTP 绑定(bind)上以便非管理员可以运行它,则需要使用以下命令添加权限

netsh http add urlacl (see help for the rest of the params)

这将允许您指定的用户为机器分割出一大块 URL 空间。如果您不想这样做,则需要更改为不需要特殊权限即可监听的其他绑定(bind)(例如 netTcp)。

关于c# - 在没有 UAC/管理员权限的情况下托管 WCF 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5774606/

相关文章:

c# - 在代码后面查找图像

c# - 复制文件,如果较新则覆盖

c# - 在 Sitecore 8 Analytics 的体验配置文件中添加 "Internal keywords"

c# - 当所有异步方法调用完成时引发事件

wcf - 通过.NET 1.1调用.NET 4.0组件

c# - 无法将 T-SQL INNER JOIN 转换为 LINQ-Entities 查询

c# - 如何在 Linux 中确定 Mono/C# 中的空闲内存(没有外部 DLL)

c# - 与命名管道和远程处理相比,WCF 是否存在性能问题?

c# - 调用基于异步任务的 WCF 方法是利用 I/O 完成端口还是线程池线程来调用延续?

.net - 正在读取自定义 HttpWebResponse StatusDescription?