小编Mis*_*ook的帖子

Windows Azure上的32位旧版COM DLL

我在我的Web应用程序中使用大约15-20个传统的32位C++ COM DLL,其中一些32位DLL具有第三方依赖项,这些依赖项是DLL的COM或本机.

我正在考虑迁移到Windows Azure,我理解这是一个64位平台.任何人都可以建议我的32位DLL是否可行?(我知道现在可以对它们进行regsvr32).

经过一两个星期的工作,我可以将我的DLL重新编译为64位,但是由于我没有源代码,这对于第三方依赖项是不可能的.

我知道Windows Azure使用64位,所以我想知道这里迁移我的应用程序的最佳方法是什么?

即我应该移动32位DLL并依赖WoW64 - 这甚至可以工作吗?我不介意一个小的性能打击.

或者更好的是重新编译我的64位应用程序并以某种方式使用32位DLL?

azure 32bit-64bit

9
推荐指数
1
解决办法
2810
查看次数

刷新所有Azure实例上的数据

刷新所有Azure实例中的数据的最佳方法是什么?

我有几个实例,每个实例都运行相同的Web角色.在角色启动时,数据从blob存储读取到本地存储.间歇性地,将对网站使用的数据进行新的更新.我希望能够以编程方式通知每个实例,以便将blob存储中的更新数据导入实例的本地存储,以便每个实例都刷新.

一个想法是编写一个自定义客户端程序来调用Web角色上的Web服务,并传入角色ID进行更新.如果端点是角色ID,则实例将刷新自身.如果不是,则客户端再次尝试,直到所有实例报告它们都被刷新.这是一个很好的方法还是在Azure中有内置方法来执行此操作?

我考虑过一个单独的线程,间歇性地检查刷新标志,但我担心我的实例会变得不同步.

没有大量数据,所以我可以把它放在Azure缓存中.但是,我担心使用缓存的网络延迟.Azure缓存是否能很好地处理这个问题?

另一个想法是一个接一个地重启实例(在角色启动时执行刷新操作).

azure azure-storage

6
推荐指数
2
解决办法
1100
查看次数

XAML中的简单Flipbook动画

我有10个XAML文件,每个文件都包含一个动画帧(它们是从SWF转换的,所以每个对象都没有关键帧信息).每个XAML文件都包含一个Canvas,每个帧都有各种形状.

我想创建1个XAML文件,其中包含每个帧的Canvas信息,然后使用XAML在适当的时间显示每个Canvas,因此每个帧都是一个接一个地显示.这是一个好方法吗?我怎样才能做到这一点?我尝试使用Blend,但似乎不可能,因为我的对象在每个帧上都不同(即我不是动画对象属性).

我只是在寻找一个声明性的解决方案.

silverlight wpf xaml

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

结合使用In-Proc COM DLL和Azure函数

是否可以在Azure函数中使用In-Proc COM DLL?

我正在将Web服务迁移到Azure Functions。组件之一依赖于旧版32位COM DLL。这通常需要将DLL在将要使用的系统上进行regsvr32编辑。似乎对于Azure Functions而言是不可能的,是否可以使用此类旧版实现?

还是有必要恢复到传统的云服务来支持这一点?(我更喜欢使用“消费”服务计划,并从“无服务器”架构中受益。)

脚步:

  1. 创建新的Azure Function应用
  2. 添加新的Azure函数(http触发器)
  3. 添加对32位COM组件的引用
  4. 在COM组件上调用简单的测试方法
  5. 在本地运行-运行正常
  6. 发布Azure功能
  7. 打开功能的HTTP路径-Azure功能失败

错误日志报告异常:

无法加载文件或程序集“ Interop.MyCOMLib,版本= 1.0.0.0,区域性=中性,公共密钥令牌=空”或其依赖项之一。该系统找不到指定的文件。

执行函数时的异常:Legacy Microsoft.Azure.WebJobs.Host.FunctionInvocationException:执行函数时的异常:Legacy ---> System.IO.FileNotFoundException:无法加载文件或程序集'Interop.MyCOMLib,Version = 1.0.0.0,区域性= neutral,PublicKeyToken = null”或其依赖项之一。该系统找不到指定的文件。在System.Runtime.CompilerServices.AsyncTaskMethodBuilder的async Functions.Legacy.Run(HttpRequestMessage req,TraceWriter日志)处,在lambda_method(Closure,旧版,对象[]
在异步Microsoft.Azure.WebJobs.Host.Executors.TaskMethodInvoker 2.InvokeAsync(TReflected实例,Object []参数)在Microsoft.Azure.WebJobs.Host.Executors.FunctionInvoker 2.InvokeAsync [TReflected,TReturnValue](对象实例,对象异步Microsoft.Azure.Job上Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.InvokeAsync(IFunctionInvoker调用者,ParameterHelper parameterHelper,CancellationTokenSource timeoutTokenSource,CancellationTokenSource functionCancellationTokenSource,布尔throwOnTimeout,TimeSpan timerInterval,IFunctionInstances实例)在异步Web主机上。 .Executors.FunctionExecutor.ExecuteWithWatchersAsync(IFunctionInstance实例,ParameterHelper parameterHelper,TraceWriter traceWriter,CancellationTokenSource函数CancellationTokenSource)
在异步上Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ExecuteWithLoggingAsync(??)在异步上Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ExecuteWithLoggingAsync(??)

另外,如果我转到解决方案的Dependencies | COM然后选择Interop.Lib并选择“嵌入Interop类型”,然后在发布后通过调用已发布的函数进行此更改:

“由于以下错误,检索具有CLSID {D84F92D7-FFFF-4C16-B939-EC98E3A6EBC0}的组件的COM类工厂失败:80040154未注册类(HRESULT的异常:0x80040154(REGDB_E_CLASSNOTREG))。”

因此,挑战在于如何向Azure Functions注册COM类?

azure azure-functions

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

无法再读取 ParameterView 实例,因为它已过期。ParameterView 只能同步读取,不得存储用于

覆盖 SetParametersAsync 时,如果我调用任何异步方法,则会得到“未处理的异常呈现组件:无法再读取 ParameterView 实例,因为它已过期。ParameterView 只能同步读取,不得存储以备后用。”

public override async Task SetParametersAsync(ParameterView parameters)
{
    await Task.Delay(1000);

    await base.SetParametersAsync(parameters);
}
Run Code Online (Sandbox Code Playgroud)

我们如何安全地调用 SetParamatersAsync 中的异步方法?

blazor blazor-webassembly

3
推荐指数
1
解决办法
250
查看次数

LINQ查询结果的调用方法简洁

我想通过LINQ查询在每个对象上调用MyMethod,这样做的最佳方法是什么?

目前我正在使用:

.Select(x => { x.MyMethod (); return x; }).ToArray();
Run Code Online (Sandbox Code Playgroud)

立即执行需要ToArray().

有没有更简单的方法来写这个(没有foreach)

谢谢

linq

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

在 VS 2008 中构建安装项目中的“无法创建文件”、“访问被拒绝”和“无法恢复的构建错误”

在构建安装项目时,我收到一条消息:

安装版本错误:错误 27 无法创建文件“C:\Users\MyName\AppData\Local\Temp\VSI1E1A.tmp”“访问被拒绝。”

我尝试了以下(来自http://support.microsoft.com/kb/329214/EN-US

regsvr32 "C:\Program Files (x86)\Common Files\Microsoft Shared\MSI Tools\mergemod.dll" 
Run Code Online (Sandbox Code Playgroud)

DLL 注册,但这并不能解决我的问题。另外,我尝试了清理构建,删除临时文件夹,以管理员身份运行 VS2008,重新启动我的电脑,但每次都会发生。我没有在 Windows 7 64 位上运行和运行的防病毒软件。直到最近,此操作都运行良好。我已经阅读了许多其他用户看到的内容,但没有找到解决方案。

我找到的唯一一半解决方案是编辑设置属性并切换到 Package files as Loose uncompressed files。这有效但并不理想,因为我需要一个完整的安装程序。

visual-studio-2008

0
推荐指数
1
解决办法
1万
查看次数