摘要:[Windows Azure]將WCF部署至雲端
這篇其實要講的是我部署WCF遇到的困難,那時候部署上去怎麼測都失敗,後來才發現原來是.NET Framework 3.5的關係
以下先簡述WCF service的部署過程:
1.新建azure專案,並加入一Web Role
2.加入wcf service,並實作
3.更改Binding為basicHttpBinding
<service behaviorConfiguration="WebRole1.Service1Behavior" name="WebRole1.Service1">
<endpoint address="" binding="basicHttpBinding" contract="WebRole1.IService1">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
4.完成
以上為正常的WCF部署過程
可是當你的Web Role是運行在.NET Framework 3.5的話,就必須要手動更改一些設定
請參考msdn的解釋,節錄重點如下:
1.灌符合作業系統的QFE
Vista/Server 2008: http://code.msdn.microsoft.com/KB971842
Win7/Server 2008 R2: http://code.msdn.microsoft.com/KB981002
2.Web.config加入以下behavior設定
<behavior name="LoadBalancedBehavior"> <serviceMetadata httpGetEnabled="true" /> <useRequestHeadersForMetadataAddress> <defaultPorts> <add scheme="http" port="81" /> <add scheme="https" port="444" /> </defaultPorts> </useRequestHeadersForMetadataAddress> <!-- Other service behaviors as necesary --> </behavior>
3.將以下屬性加入至wcf service
[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]
public class Service1 : IService1
{
public void DoWork()
{
}
}
4.大功告成!