C# Azure-将虚拟目录映射到云服务中的文件服务共享
提及: 我尝试在Azure云服务中创建虚拟目录时遇到问题,并且虚拟目录映射到Azure文件服务。 我所做的 1) 对ServiceDefinition.csdef中的webrole使用C# Azure-将虚拟目录映射到云服务中的文件服务共享,c#,azure,azure-cloud-services,azure-files,C#,Azure,Azure Cloud Services,Azure Files,提及: 我尝试在Azure云服务中创建虚拟目录时遇到问题,并且虚拟目录映射到Azure文件服务。 我所做的 1) 对ServiceDefinition.csdef中的webrole使用 2) 在WebRole.cs中 我装载驱动器(如PaaS中所述),我也在应用程序启动中进行装载 public static void MountShare(string shareName, string driveLetterAndColon,
2) 在WebRole.cs中
我装载驱动器(如PaaS中所述),我也在应用程序启动中进行装载
public static void MountShare(string shareName,
string driveLetterAndColon,
string username,
string password)
{
if (!String.IsNullOrEmpty(driveLetterAndColon))
{
// Make sure we aren't using this driveLetter for another mapping
WNetCancelConnection2(driveLetterAndColon, 0, true);
}
NETRESOURCE nr = new NETRESOURCE();
nr.dwType = ResourceType.RESOURCETYPE_DISK;
nr.lpRemoteName = shareName;
nr.lpLocalName = driveLetterAndColon;
int result = WNetAddConnection2(nr, password, username, 0);
if (result != 0 || result != 85)
//85 indicates the drive name is already used. in this scenario, it means the drive is already mapped.
{
throw new Exception("WNetAddConnection2 failed with error " + result);
}
}
3) 在WebRole.cs中,我通过以下方式创建虚拟目录:
app.VirtualDirectories.Add("/asset/cms", @"s:\cms");
4) 在WebRole.cs中,我使用以下命令使AppPool在我为远程桌面创建的管理员帐户中运行:
applicationPool.ProcessModel.IdentityType = ProcessModelIdentityType.SpecificUser;
applicationPool.ProcessModel.UserName = appPoolUser;
applicationPool.ProcessModel.Password = appPoolPass;
applicationPool.ProcessModel.LoadUserProfile = true;
问题:
我无法从/asset/cms获取任何信息如果我试图访问其中的文件,它会返回500.19,它说“请求的页面无法访问,因为页面的相关配置数据无效。”,特别是它指向不存在的s:\cms\web.config。当我远程访问云服务实例并打开IIS mgr时,我可以看到虚拟目录已正确创建
我想这是一个许可问题。但我无法编辑虚拟目录的权限,因为它已映射到网络驱动器
我怎样才能解决这个问题?--现在上述问题已经解决,云服务可以访问文件服务共享。但是,新问题-是否可以使用网络服务标识来运行AppPool?您能提供此更新吗?@KeremDemirer我没有进一步研究此问题。我们只是打算在web应用程序中使用它,但Azure文件服务不支持web应用程序,也不会。微软拒绝了这一请求。以下内容供您参考。