我已按照此处的步骤在Azure中的资源组上创建反向代理.https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reverseproxy
我相信反向代理正在工作,因为我曾经收到404错误,现在我收到400错误请求.
错误代码为FABRIC_E_INVALID_PARTITION_KEY
这是有道理的,因为在文档中,它说对于不使用单例分区的服务,您必须指定分区键和分区类型,如下所示:
http://mycluster.eastus.cloudapp.azure.com:19008/MyApp/MyService?PartitionKey=3&PartitionKind=Int64Range
Run Code Online (Sandbox Code Playgroud)
我的问题是,我如何获得该分区键?文档明确声明它不是资源管理器中生成的GUID,因此我无法使用它.我正在从结构外部的外部应用程序联系此有状态服务.
当我输入无效的URL或者在我的应用程序中抛出异常时,我得到空白页面.我启用了UseDeveloperExceptionPage(),并且我已确认我的应用程序环境处于开发模式,并且该方法正在触发.该应用程序工作正常,但没有在浏览器中显示错误消息令人沮丧.
我的Startup.cs配置方法:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseIISPlatformHandler();
app.UseStaticFiles();
app.UseIdentity();
app.UseMvc(m =>
m.MapRoute(
name: "default",
template: "{controller}/{action}/{id?}",
defaults: new { controller = "Home", action = "Index" }
));
if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
CreateSampleData(app.ApplicationServices).Wait();
}
Run Code Online (Sandbox Code Playgroud)
我的project.json
{
"version": "1.0.0-*",
"dependencies": {
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"EntityFramework.Commands": "7.0.0-rc1-final",
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4",
"Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final",
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
"Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final",
"Microsoft.AspNet.Authentication.Cookies": "1.0.0-rc1-final"
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel",
"ef": "EntityFramework.Commands"
},
"frameworks": {
"dnx451": { },
"dnxcore50": …
Run Code Online (Sandbox Code Playgroud) 我遇到一个问题,图表中的最后一个气泡被切断。我需要一种扩展图表的方法,以便显示整个圆。我已经尝试了一切,从添加额外的值到最后,到调整填充。似乎什么都不起作用。不幸的是,关于气泡图的 Chart JS 文档也严重缺乏。
var randomScalingFactor = function() {
return (Math.random() > 0.5 ? 1.0 : -1.0) * Math.round(Math.random() * 100);
};
var randomColorFactor = function() {
return Math.round(Math.random() * 255);
};
var randomColor = function() {
return 'rgba(' + randomColorFactor() + ',' + randomColorFactor() + ',' + randomColorFactor() + ',.7)';
};
var bubbleChartData = {
animation: {
duration: 10000
},
datasets: [{
label: "My First dataset",
backgroundColor: randomColor(),
data: [
{
x: 10,
y: 0,
r: Math.abs(randomScalingFactor()) / 5, …
Run Code Online (Sandbox Code Playgroud) 我有一个.NET Core ASP.NET MVC 6应用程序,我确信它是Visual Studio中的一个错误.如果我在await语句后面放置一个断点,那么该对象不会显示在Locals中,并且我无法鼠标移动来检查.但是,如果我使用变量,它仍然可以正常工作,并且它确实填充.
像这样简单:
public async Task<IActionResult> Index()
{
var location = await _listingLocationService.GetLocationByAddress("123 Fake Street");
return Content(location.Latitude.ToString() + " " +location.Longitude.ToString());
}
Run Code Online (Sandbox Code Playgroud)
如果我将断点放在return语句上,我就无法检查位置.它不会出现在任何地方.我甚至可以删除await并在结尾放置一个.Result,但仍然没有显示.但是当我继续时,视图会显示location.latitude,并且location.longitude会很好.所以我知道它正在填充.
为了完整起见,我还将包含GetLocationByAddress函数,它也会做同样的事情,如果我在等待之后的任何地方放置一个断点,我就无法检查变量(甚至是反序列化的列表!).
public async Task<Geolocation> GetLocationByAddress(string address)
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("https://maps.googleapis.com/maps/api/geocode/json");
var request = new HttpRequestMessage(HttpMethod.Get, "?address=" + WebUtility.UrlEncode(address) + "&key=...");
var response = await client.SendAsync(request);
var contents = await response.Content.ReadAsStringAsync();
var locationResult = JsonConvert.DeserializeObject<GoogleLocationResult>(contents);
if (locationResult.status == "OK")
{
var result = locationResult.results.First().geometry.location;
return new …
Run Code Online (Sandbox Code Playgroud) 我认为,Azure Service Fabric将维护微服务集群,NServiceBus将促进服务之间的通信.我在网上看到没有关于这个组合的文档,所以我很好奇我是否从根本上误解了这两个方面的工作原理.
我想知道是否有与角组件功能(特别是单击事件)等效的路由防护。
我们已经设置了一个路由保护程序,可以在未登录时打开登录页面。这很好用。问题是,我们有一个不需要身份验证即可查看的组件,但是该组件中的某些功能确实需要身份验证。例如,新闻列表,但上/下按钮需要进行身份验证才能使用。
上/下按钮只是触发组件功能的单击事件。我们可以采用在自定义路由保护程序中使用的逻辑,并将其添加到这些函数中,但这会导致大量重复代码。
我想知道Angular是否内置可以解决这个问题的东西。我在考虑类似于ASP.NET MVC的[Authorize]属性,您可以将其放在要进行身份验证的操作的顶部。据我所知,路由守卫仅适用于路由,而不适用于单击事件。