标签: azure-web-roles

如何将公共证书导入Windows Azure?

我将通过SSL从Windows Azure与另一个公共Web服务进行通信.公共Web服务上的证书是自签名的.因此,我需要信任我的Windows Azure上的公共证书.

如何将证书(.cer)导入Windows Azure?管理门户仅允许导入带有私钥的证书.

azure azure-web-roles

5
推荐指数
1
解决办法
4341
查看次数

获取webrole所属的部署的名称和位置

我希望能够从正在运行的Web角色中获取名称(在创建托管服务时命名)和部署的位置(North Europe,Asia Anywere等).我不想依赖证书和订阅ID.

就像是:

// Current role name. Ex: WebRole_IN_0
RoleEnvironment.CurrentRoleInstance.Id

// Deployment id of the role. Ex: 44b522f7e8b94412b046bbab08116d87
RoleEnvironment.DeploymentId 
Run Code Online (Sandbox Code Playgroud)

但只是返回部署名称和部署位置.

如果不使用订阅ID和证书文件通过REST API,这是否可行?

azure azure-web-roles azure-configuration azure-deployment

5
推荐指数
1
解决办法
1459
查看次数

Windows Azure,解决实例和粘性会话

对于概念证明文件,我收集了有关Windows Azure的事实.剩下2个主题我无法找到明确的答案.

  1. 粘滞的会话/粘性负载平衡是不可能的,对吗?也许在Azure流量管理器(WATM)的帮助下有可能?

  2. 是否可以解决部署的单个实例,或者它们是否都在Azure的非透明墙后面?或者至少,运行时的实例是否可以确定自己的id或类似的东西,以便将其写入日志?

.net cloud azure azure-web-roles azure-configuration

5
推荐指数
1
解决办法
1705
查看次数

Windows Azure Web角色缓存(预览)"挂起"使模拟器卡在部署循环中

我正在尝试使用Microsoft网站上的指南,将2012年6月SDK版本中引入的新发布的基于角色的缓存替换为Windows Azure AppFabric缓存.

但是,在我的Web角色中检查"启用缓存(预览)"时,模拟器将无法成功实例化网站(模拟器日志:http://pastebin.com/dwbDvak2).它似乎陷入了某种循环.禁用Web角色缓存使其再次起作用.卸载所有以前的Azure SDK并重新安装1.7版本后,我得到了相同的结果.

Visual Studio告诉我"角色实例开始的时间比预期的要长.你想继续等待吗?" [是] [否].按是保持等待,并反复出现.

是否有人可能知道如何解决上述问题,或者可能尝试过新的Web角色缓存功能并让它在azure模拟器中工作?

azure本地调试环境部署对话框的屏幕截图

谢谢.

更新:

我创建了一个新的解决方案,并添加了一个简单的MVC站点,添加了Web角色并启用了缓存,并且发生了同样的事情.所以,我看了一下事件查看器,发现了3个与该问题相关的条目:

Fault bucket 3034750239, type 5
Event Name: CLR20r3
Response: Not available
Cab Id: 0

Problem signature:
P1: cacheinstaller.exe
P2: 1.0.4655.0
P3: 4fb0f3f9
P4: CacheInstaller
P5: 1.0.4655.0
P6: 4fb0f3f9
P7: 11
P8: 47
P9: System.TypeLoadException
P10: 

Attached files:
C:\Users\anan\AppData\Local\Temp\WEREA8F.tmp.WERInternalMetadata.xml

These files may be available here:
C:\Users\anan\AppData\Local\Microsoft\Windows\WER\ReportArchive\AppCrash_cacheinstaller.e_1fbc3b72afb6acf93335ca8611850d289906c25_2ddaf529

Analysis symbol: 
Rechecking for solution: 0
Report Id: 3138ba06-b344-11e1-a8d6-402cf41c1e07
Report Status: 0


Application: CacheInstaller.exe
Framework …
Run Code Online (Sandbox Code Playgroud)

.net azure azure-web-roles azure-caching

5
推荐指数
1
解决办法
3005
查看次数

Windows Azure无法在具有不同端点数的部署之间执行VIP交换

我正试图通过azure门户网站执行VIP交换,我收到错误:

Windows Azure无法在具有不同端点数的部署之间执行VIP交换.

我看得更近了,我看到了端点数的差异(生产中的2个与分期中的3个).

生产:

Input Endpoints
OUR.API:168.62.21.50:80 
OUR.API:168.62.21.50:3389
Run Code Online (Sandbox Code Playgroud)

分期:

Input Endpoints
OUR.API:168.62.22.55:80 
OUR.API:168.62.22.55:3389 
OUR.API:168.62.22.55:8172
Run Code Online (Sandbox Code Playgroud)

端口80是web,3389是远程桌面.到现在为止还挺好.那个额外的港口8172来自哪里?应用程序中的任何内容都不会侦听端口80以外的任何内容.此外,临时和生产区域中的应用程序几乎完全相同 - 因此它必须是框架.缩小范围的任何步骤?

[编辑]另外,我的角色的ServiceDefinition.csdef只定义了一个端点:

 <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="Endpoint1" />
        </Bindings>
      </Site>
    </Sites>
    <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="http" port="80" />
    </Endpoints>
Run Code Online (Sandbox Code Playgroud)

azure-web-roles

5
推荐指数
1
解决办法
1883
查看次数

我如何知道我的Azure角色实例VM是否已重新启动?

我有一个Azure Web角色.有时它会因异常或操作系统更新而被回收.这将包括或不包括VM重启.我想知道VM是重新启动还是只是WaIISHost.exe重新启动主机进程.

我怎样才能找到最简单的方法?

azure azure-web-roles

5
推荐指数
2
解决办法
3254
查看次数

Azure Service Bus - 双向通信性能挑战

我需要在发布服务器和订阅服务器之间建立双向通信.这是为了方便前端MVC3应用程序使用关联过滤器定义订阅,然后将消息放到主题上.最后,MVC3控制器调用SubscriptionClient上的BeginReceive(),并等待响应.

问题似乎是创建和删除这些Subscription对象.开销很大,并且会使应用程序变慢.这并不是说要解决的各种限制,例如主题上的订阅数量不超过2000个.

在发布者和订阅者之间建立这种双向通信的最佳实践是什么?我们希望MVC3应用程序发布消息,然后等待对该确切消息的响应(通过CorrelationId属性和CorrelationFilter).我们已经缓存了NamespaceManager和MessagingFactory,因为它们在资源方面也非常昂贵,并且还因为我们被告知Service Bus使用显式配置模型,我们需要在角色启动期间预先创建大部分这些内容.

因此,这给我们带来了将请求与响应相关联的挑战,以及创建和删除订阅的巨大开销.还有什么更好的做法?我们应该保留SubscriptionClient的缓存,并每次交换过滤器吗?其他人都做了什么?我需要通过Web角色群集获得每秒5到10,000个MVC3请求的请求吞吐量.我们已经在使用AsyncController并在SubscriptionClient上使用异步BeginReceive().它似乎是数以千计的订阅的创建和删除,此时系统正在窒息.

UPDATE1: 根据此处提供的好建议,我们更新了此解决方案,以便在每个Web角色实例上保留SubscriptionClient对象的缓存.此外,我们已迁移到面向MessageSession的方法.

但是,这仍然没有缩放.似乎AcceptMessageSession()是一个非常昂贵的操作.MessageSession对象是否也应该被缓存并重新使用?每个打开的MessageSession对象是否都使用与服务总线的连接?如果是这样,这是否与订阅的并发连接配额相对应?

非常感谢.我想我们到了那里.Web上的大多数示例代码显示:在客户端上创建Topic(),然后是CreateSubscription(),然后是CreateSubscriptionClient(),然后是BeginReceive(),然后拆除所有对象.我只能说,如果你在现实生活中这样做,你的服务器就会被粉碎,你最快就能连接起来了.

我们需要通过这个东西每秒发出数千个请求,很明显这些对象必须被高速缓存和重用.那么,MessageSession还有另一个要缓存的项目吗?我将获得有趣的缓存,因为我们必须实现一个引用计数机制,其中一次只能给出一个对MessageSession的引用,因为这是针对http请求特定的请求/响应,我们不能有其他订阅者同时使用MessageSession对象.

UPDATE2: 好的,将MessageSession缓存以供重用是不可行的,因为它们只与订阅时的LockDuration一样长.这是一个无赖,因为最大LockDuration是5分钟.这些似乎是短期的pub/sub,而不是长期运行的分布式进程.看起来我们需要回到轮询Azure表.

摘要/评论 我们试图建立Service Bus,因为它具有规模潜力及其持久性和交付语义.但是,似乎有些情况下,它们之间的大量请求/响应不适合它.发布部分工作得很好,并且在后端拥有竞争的消费者是很好的,但是有一个前端请求等待定义的单一消费者响应,根本不能很好地扩展,因为MessageSessions需要太长时间才能完成通过AcceptMessageSession()或BeginAcceptMessageSession()创建,因为它们不适合缓存.

如果有人有另一种观点,我很乐意听到.

servicebus azure azure-web-roles asp.net-mvc-3 azureservicebus

5
推荐指数
1
解决办法
2343
查看次数

在单个Azure云服务上部署多个Web角色和工作者角色

这可能不是什么新鲜事,但我希望有人可以让我走上正轨,因为它在天蓝色部署期间有点混乱.我正在计划在Azure上进行部署.这就是我所拥有的

  1. 面向ASP.Net MVC应用程序(Web角色)+ WCF服务(Web角色)的公众只能通过此消息队列访问此asp.net应用程序+ WCF服务(工作者角色)
  2. 一个自定义STS即ASP.NET MVC应用程序(web-role)充当Id-Provider(用于1.依赖方)+ WCF服务(web-role)以将一些STS功能暴露给RP,例如1.
  3. SQL Azure:由1和2访问注意:1.最终将成为一个门户网站,在Web和工作者角色上托管多个wcf服务,以进行内部和外部访问.

我的问题是,如果1.是暴露给公众的应用程序,而2.是1.为联邦安全(内部),我应该如何计划我的部署在azure记住1.将需要横向扩展有时后来跟两个wcf服务一起?我是否发布到一个云服务或如何?我的理解是,云服务是n-web/worker角色的逻辑容器.但是,如果你有2个网页鞋底,就像在这种情况下两个asp.net应用程序,哪一个成为默认的?

最好的问候萨蒂什

asp.net deployment azure azure-worker-roles azure-web-roles

5
推荐指数
2
解决办法
9603
查看次数

他为'Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment'输入初始值设定项引发异常

将我的Azure Web应用程序移动到SDK 2.1后,我开始了

'Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment'的类型初始化程序引发了异常.

错误信息.这在本地环境中工作正常,但在Azure上出现上述错误.

我的web.config已经有以下条目:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.WindowsAzure.StorageClient"
          publicKeyToken="31bf3856ad364e35" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-1.7.0.0" newVersion="1.7.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.WindowsAzure.ServiceRuntime"
          publicKeyToken="31bf3856ad364e35" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-1.8.0.0" newVersion="1.8.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.WindowsAzure.Diagnostics"
          publicKeyToken="31bf3856ad364e35" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)

<system.diagnostics>
  <trace>
    <listeners>
      <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics">
          <filter type="" />
      </add>
    </listeners>
  </trace>
</system.diagnostics>
Run Code Online (Sandbox Code Playgroud)

仍然没有在实时Azure中工作.有人可以帮帮我吗?

azure azure-web-roles

5
推荐指数
1
解决办法
2546
查看次数

Azure Web角色上的WaitHandleCannotBeOpenedException以Task.Wait()开头

返回后,以下(Web)角色入口点会导致抛出以下异常.

public class WebRole : RoleEntryPoint
{
    public override bool OnStart()
    {
        Task.Run(() =>
            {
                // Anything can be here, but the lamdbda can be empty too...
            }).Wait();

        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

例外:

mscorlib.dll中出现'System.Threading.WaitHandleCannotBeOpenedException'类型的第一次机会异常

附加信息:不存在给定名称的句柄.

很明显,这是从框架中抛出的.这个例外似乎是无害的,我没有遇到任何问题.

我还好奇,为什么会这样呢?有没有办法在角色启动方法中运行异步代码而不会导致此类异常?

编辑:

这是异常的调用堆栈:

>   mscorlib.dll!System.Threading.EventWaitHandle.OpenExisting(string name, System.Security.AccessControl.EventWaitHandleRights rights) Unknown
    Microsoft.WindowsAzure.ServiceRuntime.dll!Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.StartRoleInternal() Unknown
    Microsoft.WindowsAzure.ServiceRuntime.dll!Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.StartRole() Unknown
    Microsoft.WindowsAzure.ServiceRuntime.dll!Microsoft.WindowsAzure.ServiceRuntime.Implementation.Loader.RoleRuntimeBridge.StartRole.AnonymousMethod__2()  Unknown
    mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx)   Unknown
    mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx)   Unknown
    mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown
    mscorlib.dll!System.Threading.ThreadHelper.ThreadStart()    Unknown
    [Native to …
Run Code Online (Sandbox Code Playgroud)

c# task azure-web-roles

5
推荐指数
0
解决办法
1763
查看次数