小编shl*_*chz的帖子

将LocalDB与Service Fabric一起使用

我有一个Actor,在收到来自WebAPI项目的请求后,Actor使用Entity Framework 6查询表.

using (var context = new MetadataContext())
{
    var userStorageAccountId = context.Set<UsersToStorageAccounts>()
                                      .Find(userId).StorageAccountId;
}
Run Code Online (Sandbox Code Playgroud)

使用"Add-Migration"..."Update-Database"命令成功创建了DB,并具有以下连接字符串:

@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFileName=C:\Users\xxxx\Metadata.mdf;Connect Timeout=30;Initial Catalog=Metadata;Integrated Security=True;"
Run Code Online (Sandbox Code Playgroud)

当我运行结构服务并且actor尝试访问上下文时,我得到以下异常:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:SQL网络接口,错误:50 - 发生本地数据库运行时错误.无法创建自动实例.有关错误详细信息,请参阅Windows应用程序事件日志.)

并且事件查看器错误是:

无法获取本地应用程序数据路径.很可能没有加载用户配置文件.如果在IIS下执行LocalDB,请确保为当前用户启用了配置文件加载.

我找了一种加载用户配置文件的方法,但我只找到了IIS的解决方案.

请帮忙 :)

c# entity-framework actor localdb azure-service-fabric

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

相当于Java 7中的ComputeIfAbsent

有没有办法只在密钥不存在的情况下运行一段代码ConcurrentHashMap,并将代码的结果保存到集合中?

我无法使用Java 8功能,因为我正在为Android开发.

此外,我想避免运行长操作,如果我不必,我不想打破集合的原子操作这样做.

java android

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

在AOSP Build上安装Google Apps

我在Nexus 5设备上安装了android-6.0.1_r72 AOSP Rom .rom没有附带Google Apps.

我试过从以下网站安装,但安装后我得到了

很遗憾,Google Play服务已经停止

我必须安装特殊版本的Google App吗?

更新:

我在logcat中发现了这个错误:

01-17 11:14:52.750 3525 5402 E AndroidRuntime:致命异常:GoogleLocationService

01-17 11:14:52.750 3525 5402 E AndroidRuntime:处理:com.google.android.gms.persistent,PID:3525

01-17 11:14:52.750 3525 5402 E AndroidRuntime:java.lang.SecurityException:"gps"位置提供程序需要ACCESS_FINE_LOCATION权限.

01-17 11:14:52.750 3525 5402 E AndroidRuntime:在android.os.Parcel.readException(Parcel.java:1620)

01-17 11:14:52.750 3525 5402 E AndroidRuntime:在android.os.Parcel.readException(Parcel.java:1573)

01-17 11:14:52.750 3525 5402 E AndroidRuntime:在android.location.ILocationManager $ Stub $ Proxy.addGpsStatusListener(ILocationManager.java:741)

01-17 11:14:52.750 3525 5402 E AndroidRuntime:在android.location.LocationManager.addGpsStatusListener(LocationManager.java:1522)

01-17 11:14:52.750 3525 5402 E AndroidRuntime:at aker.a(:com.google.android.gms:1064)

01-17 11:14:52.750 3525 5402 E …

android android-source

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

反序列化由 SignalR 作为抽象类传递的对象

我有一个 WebAPI 服务器,它有一个集线器,通过发布一个Dictionary<long, List<SpecialParam>>对象来回复订阅请求。

的列表SpecialParam包含类型SpecialParamA& 的项目,SpecialParamB它们都继承了SpecialParam

当我尝试在客户端上捕获发布时:

hubProxy.On<Dictionary<long, List<SpecialParam>>>(hubMethod, res =>
{
    DoStuff();
});
Run Code Online (Sandbox Code Playgroud)

DoStuff()不调用该方法。如果我将发布返回值string更改为,并将代理更改为接收string值,DoStuff()则会调用该方法。因此,问题在于SpecialParamItem的反序列化。

我尝试在服务器端配置:

var serializer = JsonSerializer.Create();
serializer.TypeNameHandling = TypeNameHandling.All;
var hubConfig = new HubConfiguration();
hubConfig.Resolver.Register(typeof(JsonSerializer), () => serializer);
GlobalHost.DependencyResolver.Register(typeof(JsonSerializer), () => serializer);
Run Code Online (Sandbox Code Playgroud)

但它没有帮助。

我也尝试添加到客户端:

HubConnection hubConnection = new HubConnection(hubPath);
hubConnection.JsonSerializer.TypeNameHandling = Newtonsoft.Json.TypeNameHandling.Auto;
hubProxy = hubConnection.CreateHubProxy(hubName);
hubProxy.JsonSerializer.TypeNameHandling = Newtonsoft.Json.TypeNameHandling.Auto;
Run Code Online (Sandbox Code Playgroud)

它也没有帮助。

在其他解决方案中,我发现人们定义了一个 new IParameterResolver,但它仅在服务器接收到集线器方法的输入时被调用,而不是在从集线器发布输出时调用。

请帮忙!

更新

这是我用 fiddle …

c# json.net signalr asp.net-web-api

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

Fabric Message太大了

我正试图将5MB~数据从服务传递给actor,我收到错误:

Fabric Message太大了

如何增加微服务之间可以传输的最大大小?

我查看了以下页面以查看我的选项.

我尝试过设置:

<Section Name="ServiceReplicatorConfig">
    ...
    <Parameter Name="MaxReplicationMessageSize" Value="1073741824" />
</Section>
Run Code Online (Sandbox Code Playgroud)

请帮忙.

c# azure microservices azure-service-fabric

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

在存储帐户之间复制blob

我正在尝试将blob从一个存储帐户复制到另一个存储帐户(在不同的位置).

我正在使用以下代码:

var sourceContainer = sourceClient.GetContainerReference(containerId);
var sourceBlob = sourceContainer.GetBlockBlobReference(blobId);
if (await sourceBlob.ExistsAsync().ConfigureAwait(false))
{
    var targetContainer = targetClient.GetContainerReference(containerId);
    await targetContainer.CreateIfNotExistsAsync().ConfigureAwait(false);
    var targetBlob = targetContainer.GetBlockBlobReference(blobId);
    await targetBlob.DeleteIfExistsAsync().ConfigureAwait(false);
    await targetBlob.StartCopyAsync(sourceBlob).ConfigureAwait(false);
}
Run Code Online (Sandbox Code Playgroud)

我收到"未找到"错误.我确实知道源blob确实存在.我使用了错误的命令吗?关于存储帐户之间的复制,我有什么遗漏吗?

c# azure-storage azure-storage-blobs

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

传递带有继承对象值的基础对象 (Json)

我使用以下代码调用 WebAPI:

var client = new HttpClient
{
    BaseAddress = new Uri("http://localhost:8490/")
};
var jObject = new JObject();
jObject.Add("paramA", paramA);
jObject.Add("paramB", paramB);
JArray jArr = JArray.FromObject(paramsGenericArr);
jObject.Add("paramC", jArr);
var content = new StringContent(jObject.ToString(), Encoding.UTF8, "application/json");
var result = await client.PostAsync("api/path/tofunc", content).ConfigureAwait(false);
result.EnsureSuccessStatusCode();
Run Code Online (Sandbox Code Playgroud)

ParamsGeneric 类是一个抽象类型,具有 2 个派生类:

[DataContract]
public class ParamsTypeA : ParamsGeneric
{
    [DataMember]
    public long itemC {get; set;}
    public ParamsTypeA() :
                      base()
    {}
}

[DataContract]
public class ParamsTypeB : ParamsGeneric
{
    [DataMember]
    public long itemD {get; set;}
    public ParamsTypeB() …
Run Code Online (Sandbox Code Playgroud)

c# serialization json.net asp.net-web-api

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

单元测试使用外部dll的方法

我有一个名为A的项目,它有一个名为ClassA的类. ClassA有一个名为ReadBlock()的方法,它创建一个CloudBlockBlob对象并调用其中一个方法.

CloudBlockBlob是一个位于Microsoft.WindowsAzure.Szrage.Blob命名空间的类,该命名空间位于Microsoft.WindowsAzure.Storage.dll中.

我的项目A有一个名为A.Tests的单元测试项目.现在,我想测试方法ReadBlock().为了测试它,我需要模拟CloudBlockBlob对象并拦截对其方法的调用,返回自定义值并验证方法是否被调用.

  • 如何模拟在方法内完全创建的对象?
  • 我可以以某种方式更改项目A的DLL引用并将其引用到创建模拟对象而不是真实对象的模拟dll吗?
  • 我可以在A.Tests类中使用我自己的实现覆盖项目AMicrosoft.WindowsAzure.Storage.Blob中的类的调用吗?

更新: 问题是我是否可以在不修改项目A的代码的情况下完成此操作.

谢谢!

c# unit-testing moq mocking azure-storage-blobs

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

类文件的未知包名称

我有两个库要添加到AOSP: Azure StorageJackson Core

当Azure存储依赖于杰克逊.

按照这些说明,我已经[MAIN_FOLDER]/external在以下Android.mk文件中添加了这两个文件:

杰克逊 -

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := jackson

LOCAL_MODULE_TAGS := eng debug optional

LOCAL_SDK_VERSION := current

LOCAL_SRC_FILES := $(call all-java-files-under, src/main)

include $(BUILD_JAVA_LIBRARY)
Run Code Online (Sandbox Code Playgroud)

和Azure存储 -

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := azure-storage

LOCAL_JAVA_LIBRARIES := jackson

LOCAL_MODULE_TAGS := eng debug optional

LOCAL_SDK_VERSION := current

LOCAL_SRC_FILES := $(call all-java-files-under, src/main)

include $(BUILD_JAVA_LIBRARY)
Run Code Online (Sandbox Code Playgroud)

当我还添加:

PRODUCT_BOOT_JARS := \
    jackson \
    azure-storage
Run Code Online (Sandbox Code Playgroud)

我的core_minimal.mk.

以及以下内容 …

java android android-source android.mk

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