在 ASP.NET Core 2.2 中,拥有一个带有 React 前端和工作服务器端渲染的 ASP.NET Core 网站是相当简单的 - 因为 ASP.NET Core+React 模板中支持开箱即用的 SSR ,它在内部运行NodeServices以使用 node.js 执行 javascript。
然而,对于 ASP.NET Core 3.1,事情不再那么容易了,主要是因为SpaServices和NodeServices类被声明为过时并且将根据此链接被 .NET 5 删除。因此不再使用来自 C# 的节点执行 javascript。
现在,除了信息之外,ASP.NET Core 2.2 中建议的服务器端渲染现已过时,我发现如何继续的唯一建议来自上面的文章:
要启用服务器端预渲染和热模块重新加载等功能,请参阅相应 SPA 框架的文档。
但是,如果我理解正确,要进行基于反应的服务器端渲染,我需要有一个 node.js 服务器,它将在服务器端执行渲染。
这是否意味着,如果我想要一个带有 React 前端和 SSR 的 ASP.NET Core 3.1 网站——我应该有一个用于 WebAPI 的 ASP.NET Core 项目,以及另一个单独的 Node.JS 项目用于前端——以SSR结束?
然后将它们部署在两个单独的 Azure AppServices 上?
这是 ASP.NET Core + React 项目的推荐架构吗?
如何将自己的日志记录逻辑附加到ASP.NET 5应用程序以处理业务逻辑和较低层中引发的每个异常?
我尝试了自己的ILoggerProvider实现和 loggerfactory.AddProvider(new LoggerProvider(Configuration))Startup.cs.但似乎它拦截了内部的ASP.NET内容,而不是我在较低层中引发的异常.
是否可以将ASP.NET vNext Web应用程序部署到Azure云服务?如果是的话,它是否构建在aspnet50或aspnetcore50框架上是否重要?Azure Cloud Service Visual Studio模板,即使在2015 CTP中,似乎也只支持.NET Framework 4.x.
我想将.net程序集注册为COM.
事实上,据我所知,这意味着HKEY_CLASSES_ROOT我不想写入条目HKEY_CURRENT_USER/Software/Classes,因此不需要UAC/Admin权限.
找到了这个问题的两个解决方案,我正在努力:
1)以编程方式,使用以下代码:
IntPtr key;
var openKeyresult = RegOpenKeyEx(HKEY_CURRENT_USER, "SOFTWARE\\Classes", 0, (int)RegistrySecurity.KEY_WOW64_64KEY, out key);
var overrideKeyResult = RegOverridePredefKey(HKEY_CLASSES_ROOT, key);
var registerResult = Registrar.RegisterAssembly(GetAssembly(), AssemblyRegistrationFlags.SetCodeBase);
Run Code Online (Sandbox Code Playgroud)
在这种方法中,overrideKeyResult6是对应于ERROR_INVALID_HANDLE,因此,RegisterAssembly抛出"访问被拒绝"异常,因为它试图写入HKEY_CLASSES_ROOT.
旁注:每次我运行RegOpenKeyEx的键值都不同,是吗?
2)与regasm
通过使用regasm.exe与所述/regfile标志,然后在生成的替换.reg文件中的所有HKEY_CLASSES_ROOT与出现次数HKEY_CURRENT_USER/Software/Classes
我觉得应该可行,但是当我不想卸载我的Outlook AddIn时,如何取消注册这样的程序集呢?
因为我看到我无法以与注册相同的方式制作它,因为:
var openKeyresult = RegOpenKeyEx(HKEY_CURRENT_USER, "SOFTWARE\\Classes", 0, (int)RegistrySecurity.KEY_WOW64_64KEY, out key);
如何在 Xamarin.Forms 应用程序中拦截应用程序级别的点击/点击事件?
我尝试在 MainPage 上使用类似的东西
<Grid.GestureRecognizers>
<TapGestureRecognizer Command="{Binding TappedCommand}" Tapped="TapGestureRecognizer_OnTapped"></TapGestureRecognizer>
</Grid.GestureRecognizers>
Run Code Online (Sandbox Code Playgroud)
但它只有在我点击空白区域时才有效,触摸按钮不会触发事件。
此外,我经常通过更改 MainPage 进行导航,因此即使它有效,我也必须添加此类识别器。
我想在我的应用程序中全局处理任何触摸/点击/点击事件,是否可以在 Xamarin.Forms 中?
是否有一个用于AvalonEdit控件的xshd规则集以突出显示JSON语法?我尝试了JavaScript的定义,但它不能很好地工作,即:
{
"name" : "value"
}
Run Code Online (Sandbox Code Playgroud)
使用JavaScript定义,名称和值都具有相同的颜色.
是否有JSON的规则集,如果没有,我如何修改xshd以便在JSON中获得名称和值的不同颜色?
我有一个用新的 Javascript API (office.js) 编写的 Outlook 加载项。
我从日历中的约会的撰写表单中进行了一些操作(向正文添加主题后缀和一些文本)。完成操作后,我调用:
Office.context.mailbox.item.saveAsync(callback)
Run Code Online (Sandbox Code Playgroud)
包含更改的项目会被保存,但是当我在 Outlook Web UI 上致电Office.context.mailbox.item.close() 或关闭约会撰写表单时 - 如果我想保存更改或放弃更改,则会显示一个对话框,尽管自saveAsync通话以来没有进行任何更改。
无论用户是单击“保存”还是“放弃”,约会都具有我在saveAsync调用前使用加载项所做的更改。这种行为的原因是什么?
我在Visual Studio 2015 RC中有一个ASP.NET 5 Web应用程序.现在我想创建一个WebJob,它可以独立地或在Web应用程序上.有资源如何在.NET 4.6中执行此操作,但如何部署ASP.NET 5控制台应用程序?有没有办法像:https: //azure.microsoft.com/pl-pl/documentation/articles/websites-dotnet-deploy-webjobs/
我正在使用 NetOffice 库开发 Outlook 加载项。这是一次很好的体验,但最后我更换了驱动器,重新安装了 Windows、Office 等。现在我的加载项无法运行,在 Outlook 选项的“COM 加载项”中我看到:
Load Behavior: Not loaded. A runtime error occurred during the loading of the COM Add-in
这个问题甚至在 NetOffice 的简单示例中也存在,即该项目NetOffice Tools - Simple,它基本上不执行任何操作。
我将添加的构造函数放入日志记录代码(到文件)中,但它没有运行,因此即使构造函数也没有被命中。
有什么提示如何解决它吗?
编辑:使用 AddInSpy 我发现加载项状态为:
Add-in DLL path is not found.
但不知道如何继续处理此信息。
此问题是通过Microsoft Graph在Outlook加载项中获取自定义属性集的后续操作。
我的Outlook Office.js加载项正在向事件添加一些自定义属性。它可以按预期工作,我可以使用Microsoft Graph并按照以下GET请求访问这些属性:
/v1.0/me/events/{event-id}?$expand=SingleValueExtendedProperties($filter=id%20eq%20'String%20{00020329-0000-0000-C000-000000000046}%20Name%20cecp-b7ff386a-234a-4a38-84bc-e5ae4684b7af')
Run Code Online (Sandbox Code Playgroud)
但现在,我尝试通过将这样的正文发布到推送通知端点(/v1.0/subscriptions)来订阅推送通知:
{
changeType: "created,updated,deleted",
notificationUrl: `[...my url...]`,
resource: `/users/${userData.id}/events?$filter=singleValueExtendedProperties/any(ep%3A%20ep%2Fid%20eq%20'String%20{00020329-0000-0000-C000-000000000046}%20Name%20cecp-b7ff386a-234a-4a38-84bc-e5ae4684b7af')`,
expirationDateTime: tomorrow,
clientState: "SecretClientState"
}
Run Code Online (Sandbox Code Playgroud)
但我得到:
{
"error": {
"code": "ExtensionError",
"message": "Operation: Create; Exception: [Status Code: BadRequest; Reason: Bad Request]",
"innerError": {
"request-id": "01dcece6-0103-4bef-8231-e9ab9480402a",
"date": "2017-04-04T20:20:58"
}
}
}
Run Code Online (Sandbox Code Playgroud)
试图设置请求中的资源为不转义,但结果相同,接下来我尝试的是$filter功能,因此使用MS Graph资源管理器以以下格式获取了get请求:
/v1.0/me/events/?$filter=singleValueExtendedProperties/any(ep%3A%20ep%2Fid%20eq%20'String%20{00020329-0000-0000-C000-000000000046}%20Name%20cecp-b7ff386a-234a-4a38-84bc-e5ae4684b7af')
Run Code Online (Sandbox Code Playgroud)
但出现以下错误:
{
"error": {
"code": "ErrorInvalidUrlQueryFilter",
"message": "The filter expression for $filter does not match to a single extended property and a value restriction.", …Run Code Online (Sandbox Code Playgroud) outlook-restapi office-js outlook-web-addins microsoft-graph
我有几个DAO文件,存储在Azure DocumentDb中,现在我希望空值不会存储在DocDb中,可以通过[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]属性属性来存储 .但我不想把这个属性放在每个财产上.
问题是,没有任何方法可以设置JsonSerializerSettingsAzure DocumentDb API使用的Json序列化程序.
对我来说,似乎是使用JsonConverter类的属性,并创建一个自定义JsonConverter类,它将使用标准序列化但更改序列化设置.
这是转换器:
public class CommonJsonConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
return true;
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
var token = JObject.ReadFrom(reader);
return token.ToObject(objectType, serializer);
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
serializer.NullValueHandling = NullValueHandling.Ignore;
var jo = JObject.FromObject(value, serializer);
jo.WriteTo(writer);
}
}
Run Code Online (Sandbox Code Playgroud)
但我得到了WriteJson这样的例外:
Newtonsoft.Json.dll发生了'Newtonsoft.Json.JsonSerializationException'类型的第一次机会异常
附加信息:使用"Infrastructure.Dao.Contacts.PersonDao"类型检测到的自引用循环.路径''.
我试图将WriteJson函数更改为:
public override …Run Code Online (Sandbox Code Playgroud)