0

我有一个解决方案,有两个项目,一个是web 应用程序,一个是windows azure 项目
要链接这两者,我在解决方案中的角色>添加>Web角色项目中单击鼠标右键。

到目前为止一切都很好。如果我单击在浏览器中查看, 我可以通过计算模拟器在多个实例上测试应用程序并在本地测试它。

我的目标是保持相同的代码在本地和云中运行,因此,仅 azure 代码包含在诸如 if(RoleEnvironment.IsAvailable) { } else { }

问题之类的块中: Web.config 文件对于Web 应用程序azure 项目以及某些配置是通用的,例如TableStorageSessionStateProvider 将无法在本地工作,所以我的问题是......

<sessionState mode="Custom" customProvider="TableStorageSessionStateProvider">
    <providers>
        <clear/>
            <add name="TableStorageSessionStateProvider" type="Microsoft.Samples.ServiceHosting.AspProviders.TableStorageSessionStateProvider"/>
    </providers>
</sessionState>

问题:我可以拥有两个 web.config 文件吗?当我在本地浏览网站时调用一个,当我在计算模拟器中测试我的应用程序或将解决方案部署到 Microsoft 云时使用一个?

4

2 回答 2

2

试试这个类似问题的答案。您也许可以使用Web.config 转换

这个想法是让你的本地测试Web.config,然后有一个单独的配置Web.cloud.config用于云部署。

于 2012-06-09T14:41:22.763 回答
-1

不,您不能拥有多个 web.config。彼得提到的转换不起作用,因为转换不是天蓝色包装过程的一部分。

如果可能,尽量使用代码和 RoleEnvironment.IsAvailable 进行设置。除此之外,您应该尽量避免让您的配置依赖于您的机器。

如果真的没有办法,并且您绝对需要不同的配置文件,您可以设置一个额外的构建后任务,以在发布模式下编译时将 web.config 文件替换为不同的文件。

于 2012-06-09T16:02:25.420 回答