다소 긴 질문이긴하지만 설명이 잘되어 있습니다.가상 응용 프로그램을 사용하여 하늘색 웹 역할을 호스팅하면 전체 프로젝트가 전송되고 구성 변환은 처리되지 않습니다.
나는 그 사이트 아래의 가상 응용 프로그램으로 전달하는 루트 사이트가있는 웹 역할이 있습니다. 내 프로젝트가 로컬에서 잘 작동하며 거의이 클라우드에서 완벽하게 작동합니다. 새 빌드 구성을 사용하여 Azure에서 작동하도록 내 사이트의 web.config를 얻습니다 (SQL 세션 상태를 사용해야 함).
어쨌든 내 호스팅 된 사이트를 검사 할 때마다 폴더 0, 1, 2에 3 개의 사이트가 표시됩니다. 0은 내 루트를 나타내며 해당 폴더의 내용은 호스팅 된 응용 프로그램의 경우 최소 bin, default.aspx, packages 및 web.config에 대한 최소값입니다. 이것은 훌륭하게 작동하며 내 데이터베이스의 세션을 주시하여 작동하는 것을 볼 수 있습니다.
그러나 가상 응용 프로그램을 나타내는 다른 (동일한) 폴더 중 하나를 선택하면 전체 Visual Studio 프로젝트를 볼 수 있습니다. 코드 파일, web.config 변환 등. 실제로 변환은 실제로 처리되지 않습니다. 전체 프로젝트가 그곳에 버려졌습니다.
Visual Studio 2010을 사용하여 응용 프로그램을 내 웹 역할에 게시했습니다. 이 동작을 제어하기 위해 설정에서 명백한 것을 볼 수 없습니다. 도움이된다면 내 서비스 정의 파일의 일부입니다.
<WebRole name="root" vmsize="Small">
<Sites>
<Site name="Web">
<VirtualApplication name="en" physicalDirectory="../../../sitefolder" />
<VirtualApplication name="en-gb" physicalDirectory="../../../sitefolder" />
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" />
</Bindings>
</Site>
</Sites>
<Endpoints>
<InputEndpoint name="Endpoint1" protocol="http" port="80" />
</Endpoints>
<Imports>
<Import moduleName="Diagnostics" />
<Import moduleName="RemoteAccess" />
</Imports>
</WebRole>
<WorkerRole name="emailer" vmsize="ExtraSmall">
<Imports>
<Import moduleName="Diagnostics" />
<Import moduleName="RemoteAccess" />
<Import moduleName="RemoteForwarder" />
</Imports>
</WorkerRole>
거기에는 구성 설정이 있지만 생략했습니다. 모든 도움을 주셔서 대단히 감사합니다. 여기에 편집 한
여기에 설명 된 변경이 구현 된 후에 내 솔루션에 윈도우 푸른 프로젝트 내 프로젝트 파일입니다 : 내가 수동으로 폴더를 생성했다이 컴파일을하기 위해 http://michaelcollier.wordpress.com/2013/01/14/multiple-sites-in-a-web-role/
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
*** entire content as normal and untouched manually ***
<!-- Import the target files for this project template -->
<PropertyGroup>
<VisualStudioVersion Condition=" '$(VisualStudioVersion)' == '' ">10.0</VisualStudioVersion>
<CloudExtensionsDir Condition=" '$(CloudExtensionsDir)' == '' ">$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Windows Azure Tools\2.0\</CloudExtensionsDir>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Staging01' ">
<OutputPath>bin\Staging01\</OutputPath>
</PropertyGroup>
<PropertyGroup>
<!-- Inject the publication of "secondary" sites into the Windows Azure build/project packaging process. -->
<CoreBuildDependsOn>
CleanSecondarySites;
PublishSecondarySites;
$(CoreBuildDependsOn)
</CoreBuildDependsOn>
<!-- This is the directory within the web application project directory to which the project will be "published" for later packaging by the Azure project. -->
<SecondarySitePublishDir>azure.publish\</SecondarySitePublishDir>
</PropertyGroup>
<!-- These SecondarySite items represent the collection of sites (other than the web application associated with the role) that need special packaging. -->
<ItemGroup>
<SecondarySite Include="..\bobblejob.com\bobblejob.com.csproj" />
</ItemGroup>
<Target Name="CleanSecondarySites">
<RemoveDir Directories="%(SecondarySite.RootDir)%(Directory)$(SecondarySitePublishDir)" />
</Target>
<Target Name="PublishSecondarySites" Condition="'$(PackageForComputeEmulator)' == 'true' Or '$(IsExecutingPublishTarget)' == 'true' ">
<MSBuild Projects="%(SecondarySite.Identity)" Targets="Build;_WPPCopyWebApplication" Properties="Configuration=$(Configuration);Platform=$(Platform);WebProjectOutputDir=$(SecondarySitePublishDir)" />
</Target>
<Import Project="$(CloudExtensionsDir)Microsoft.WindowsAzure.targets" />
</Project>
내 bobblejob.com 폴더의 "azure.publish". IsExecutingPublishTarget이 true 일 때만 빌드를 실행해야한다고 오류가 표시 될 수 있습니까? 이걸 내 devbox와 내가 설정 한 모든 배포판에서 실행하고 싶습니다 ...
- 11/09/13 - 이것은 여전히 문제입니다. 누구에게 해결책이 있습니까?
답장을 보내 주셔서 감사합니다. 예, 제가 묻는 질문에 대한 답변을 제공합니다. 그러나 나는 그것이 작동하도록하는 데 어려움을 겪고있다. 첫 번째 시도는 Alternate Method (수동으로 프로젝트 파일을 완전히 편집하는 편이 낫지 않았으므로) 였지만 프로젝트를 컴퓨터에서 실행하여 전체 시스템을 완전히 정지 시켰습니다. 통제권을 얻으려고 20 분이 지난 후에 나는 그 일을 하드 리셋했다! 나는 계속 노력할 것이고 그것이 어떻게 진행되는지 알려줄 것입니다. –
맞아요, 저는이 방법을 당신의 블로그 포스트에서 두 가지 방법으로 사용하지 못했습니다. 그러나 나는 MSBuild를 사용하지 않았거나 어떤 구성 옵션을 사용하지 않았다는 것을 인정합니다. 따라서 실수를했을 수도 있습니다. 먼저 다른 방법을 시도해 보았습니다. Post-Build 섹션의 명령 중 하나가 MSBuild를 다시 실행하는 것처럼 보입니다. 따라서 컴퓨터를 실행할 때마다 다른 컴퓨터를 실행할 때마다 컴퓨터가 작동하지 않습니다. 나는 이것이 당신의 게시물에서 어떻게 올바른지 볼 수 없다. 다음 첫 번째 방법을 시도하고 각 단계를 신중하게 완료했습니다. 나는 위의 질문에서 더 설명해야한다. –
$ (ProjectDir) .. \ bobblejob-azure \ Sites \ $ (ProjectName) 은 C : \ Chaotic \ Projects \ bobblejob.com \ bobblejob.com \으로 바뀝니다. \ bobblejob-azure \ Sites \ bobblejob.com - 즉, ".."는 디렉토리를 거꾸로 가지 않습니다. –