我正在学习如何使用WCF,我正在尝试从头开始编写一个小的HelloWorld程序(主机和客户端).ProtocolException Unhandled每当我的客户尝试使用该服务时,我都会得到一个,我无法弄明白为什么.我正在使用IIS托管服务.
关于我设置的方式:我正在尽力分离客户端,代理,主机,服务和合同,详见本视频和本文所述.基本上我在解决方案中为每个项目提供了不同的项目.
这里有一些不同的文件显示我在说什么:
namespace HelloWorld
{
public class HelloWorldService : IHelloWorldService
{
public String GetMessage(String name)
{
return "Hello World from " + name + "!";
}
}
}
Run Code Online (Sandbox Code Playgroud)
namespace HelloWorld
{
[ServiceContract]
public interface IHelloWorldService
{
[OperationContract]
String GetMessage(String name);
}
}
Run Code Online (Sandbox Code Playgroud)
namespace HelloWorld
{
public class Proxy : ClientBase<IHelloWorldService>, IHelloWorldService
{
#region IHelloWorldService Members
public String GetMessage(String name)
{
return Channel.GetMessage(name);
}
#endregion
}
Run Code Online (Sandbox Code Playgroud)
}
namespace Client …Run Code Online (Sandbox Code Playgroud) 我正在尝试将以下 ML.NET F# 产品推荐示例改编为我自己的用例:https://github.com/dotnet/machinelearning-samples/tree/master/samples/fsharp/getting-started/MatrixFactorization_ProductRecommendation
但是,在我的数据集中,我没有两个数字 ID。相反,我有一个 UserId(数字)和一个 ProductId(字符串)。因为键值似乎只能是数字,所以我尝试使用该MapValueToKey函数来映射它。但是,我仍然收到以下错误:
Unhandled Exception: System.InvalidOperationException: Column 'UserId' with role MatrixColumnIndex should be a known cardinality U4 key, but is instead 'UInt32'
at Microsoft.ML.Recommender.RecommenderUtils.CheckRowColumnType(RoleMappedData data, ColumnRole role, Column& col, Boolean isDecode)
at Microsoft.ML.Recommender.RecommenderUtils.CheckAndGetMatrixIndexColumns(RoleMappedData data, Column& matrixColumnIndexColumn, Column& matrixRowIndexColumn, Boolean isDecode)
at Microsoft.ML.Trainers.MatrixFactorizationTrainer.TrainCore(IChannel ch, RoleMappedData data, RoleMappedData validData)
at Microsoft.ML.Trainers.MatrixFactorizationTrainer.Fit(IDataView trainData, IDataView validationData)
at Microsoft.ML.Trainers.MatrixFactorizationTrainer.Fit(IDataView input)
at <StartupCode$Recommender>.$Program.main@() in /Users/nat/Projects/Recommender/Recommender/Program.fs:line 75
Run Code Online (Sandbox Code Playgroud)
我的数据的架构类似于以下内容:
UserId,ProductId
1,test-product-id
Run Code Online (Sandbox Code Playgroud)
这是失败的代码,改编自链接的示例:
Unhandled Exception: System.InvalidOperationException: Column 'UserId' with role MatrixColumnIndex …Run Code Online (Sandbox Code Playgroud) 我正在尝试将 JSON 反序列化为我无法修改的自定义 POJO。该 POJO 具有来自我无法使用的不同自定义内部序列化框架的注释。如何创建一个尊重这些注释的自定义反序列化器?
这是一个示例 POJO:
public class ExampleClass {
@Property(name = "id")
public String id;
@Property(name = "time_windows")
@NotNull
public List<TimeWindow> timeWindows = new ArrayList<>();
public static class TimeWindow {
@Property(name = "start")
public Long start;
@Property(name = "end")
public Long end;
}
}
Run Code Online (Sandbox Code Playgroud)
因此,在这种情况下,反序列化器将在 JSON 中查找与Property注释对应的字段,并使用该注释中的值来决定要抓取的字段。如果物业不具有Property注释,应该被忽略。
我一直在浏览杰克逊文档,但一直无法找到我需要的确切内容。这是一个AnnotationIntrospector有用的地方吗?或者可能是ContextualDeserializer?
任何指向正确方向的指针将不胜感激!
更新:我尝试实施评论中的建议,但没有成功。
这是我对内省器的初始实现:
class CustomAnnotationInspector : JacksonAnnotationIntrospector () {
override fun hasIgnoreMarker(m: AnnotatedMember?): Boolean {
val property = m?.getAnnotation(Property::class.java) …Run Code Online (Sandbox Code Playgroud) 我正在尝试将一个netcoreapp2.0应用程序部署到AWS Lambda,该应用程序连接到RDS上的Postgres.以下代码失败:
let testConn = "Host=hostNameHere;Username=userNameHere;Password=passwordHere;Database=postgres";
let conn = new NpgsqlConnection(testConn)
try
printfn "Trying to open a connection"
conn.Open()
with ex ->
printfn "Exception trying to open conn:\n%O" ex
Run Code Online (Sandbox Code Playgroud)
我得到以下堆栈跟踪:
System.TimeoutException: The operation has timed out.
at Npgsql.NpgsqlConnector.Connect(NpgsqlTimeout timeout)
at Npgsql.NpgsqlConnector.<RawOpen>d__153.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Npgsql.NpgsqlConnector.<Open>d__149.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at …Run Code Online (Sandbox Code Playgroud)