WCF - 创建文件夹

时间:2016-08-08 11:27:30

标签: wcf iis file-permissions

我已经构建了一个WCF服务,并希望在IIS上托管它。我想要的一个功能是以编程方式在WCF webhost根目录中创建一个子文件夹,以保留一些json文件。
我已在我的本地开发IIS Express上测试它并且它工作正常,这并不奇怪我拥有所有必要的权限。
现在,我想在我的公共领域发布它。为此,我在Plesk上创建了一个子域,在httpdocs中创建了一个子文件夹。我已经将web.config文件和我的开发机器中的Bin文件夹复制到我域上的这个文件夹中。但是,当我在浏览器上输入svc url时,我得到一个访问被拒绝的异常(该文件夹是在我的服务中注入的依赖项中创建的,这就是我此时得到异常的原因。)

  应用程序中的服务器错误。

     

访问路径   'C:\ Inetpub \ vhosts \««我的域名»»\ httpdocs \ VersioningService \ Repository'是   拒绝。

     

描述:执行期间发生了未处理的异常   当前的网络请求。请查看堆栈跟踪了解更多信息   有关错误的信息以及它在代码中的起源。

     

异常详细信息:System.UnauthorizedAccessException:访问   路径   'C:\ Inetpub \ vhosts \««我的域名»»\ httpdocs \ VersioningService \ Repository'是   拒绝。

下面是我的web.config:

<?xml version="1.0"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <system.web>
    <compilation debug="false" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
    <customErrors mode="Off"/>
  </system.web>

  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true">
      <serviceActivations>
        <add factory="VersioningService.Services.ManualMajorMinorVersioningHostFactory"
             relativeAddress="~/ManualMajorMinorVersioning.svc"
             service="VersioningService.Services.ManualMajorMinorVersioning" />
      </serviceActivations>
    </serviceHostingEnvironment>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

这是我用来获取当前程序集路径的内容:

var assemblyFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);

注意:如果我使用ProgramData文件夹,我没有异常,但我希望在WCF文件夹中有一个子文件夹。

这显然是一个权限问题。我是否需要在web.config中添加其他内容?
我是否需要让我的主机提供商为某些用户提供一些额外的权限?

0 个答案:

没有答案