【问题标题】:Windows Azure: Unable to generate a temporary class (result=1). error CS2001: Source file 'C:\Windows\TEMP\XXXXX.cs' could not be found errorWindows Azure:无法生成临时类(结果=1)。错误 CS2001:找不到源文件“C:\Windows\TEMP\XXXXX.cs”错误
【发布时间】:2013-10-15 03:19:09
【问题描述】:

在 Web 服务调用中调用方法时出现此错误。根据下面的帖子Error: Unable to generate a temporary class (result=1) ... When Invoking Methods on a Web Service,我们只需要授予 NETWORKSERVICE 访问 C:\Windows\TEMP 目录的权限。问题是我们在 Windows Azure 上运行这个应用程序,我不确定如何在每次服务器循环或部署时授予 NETWORKSERVICE 角色访问目录的权限。

关于如何确保 NETWORKSERVICE 始终可以访问 Azure 上的该目录的任何想法?

编辑: 我们尝试远程登录到每台服务器并直接授予 IIS_IUSRS 组对 Windows Temp 的完全访问权限并重新启动 IIS,但仍然看到问题。在 Azure 上,windows 临时目录实际上存储在 D 驱动器上,因此由于异常状态它试图访问 C:\Windows\Temp,我们确实手动创建了该目录并授予相同的组完全访问权限,但它仍然没有没用。

【问题讨论】:

  • 您使用的是 Azure 网站、Azure Web 角色还是 Azure 虚拟机 + IIS?
  • 我们使用的是虚拟机 + IIS。我可以远程访问每台服务器并手动设置它,但如果实例循环或删除该部署,我将不得不再次进入。
  • 我不明白你在做什么。目录上的安全属性不是易失性的。如果您允许用户 X 读取/写入目录,则权限在系统重新启动后也保持不变。
  • 但是如果我们删除了部署/服务角色,或者如果服务器由于某种原因被重新映像,那么该设置就不会保留对吗?
  • 尼克,您确定您使用的是虚拟机吗?根据您的回复,我认为您正在使用 Web 角色。正如我所说,在“原始”虚拟机 (Iaas) 上,您可以完全控制您的服务器。

标签: web-services azure


【解决方案1】:

要在 Azure 云服务(Web 或辅助角色)中提供扩展访问权限,请将 <Runtime executionContext="elevated" /> 添加到 <WorkerRole><WebRole> 节点内的 .csdef。例如:

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="blah" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2012-10.1.8">
  <WorkerRole name="blah" vmsize="Small">
    <Runtime executionContext="elevated" />
    ...      
   </WorkerRole>
</ServiceDefinition>

【讨论】:

  • 试过了,但没用。仍然出现同样的错误。
【解决方案2】:

问题是第三方网络服务没有直接给他们的 C:\Windows\Temp 适当的权限。永远不要排除这可能不是你的错!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多