我使用OWIN(在Windows服务中)自我托管Web API.据我所知,这足以让HTTP请求进入Windows服务.我可以在http://localhost/users本地(来自同一台机器)点击WebAPI URL(),但不能从其他机器点击.我正在使用端口80,IIS已停止.当IIS运行时,其他网站(在IIS中,在端口80上托管)可以正常工作.
//在Windows服务中:
public partial class Service1 : ServiceBase
{
...
...
protected override void OnStart(string[] args)
{
Console.WriteLine("Starting service...");
string baseAddress = "http://localhost:80/";
WebApp.Start<Startup>(baseAddress); //This is OWIN stuff.
}
...
...
}
public class Startup
{
// This code configures Web API. The Startup class is specified as a type
// parameter in the WebApp.Start method.
public void Configuration(IAppBuilder appBuilder)
{
// Configure Web API for self-host.
var config = new HttpConfiguration();
WebApiConfig.Register(config);
appBuilder.UseWebApi(config); …Run Code Online (Sandbox Code Playgroud) 有没有办法根据全局 values.yaml 有条件地安装舵子图?我将所有内部服务和组件都作为子图表,其中之一是消息队列图表。在我的开发和测试环境(本地 k8s)中,我使用 RabbitMQ,在 staging 和 Prod (AKS) 中,我使用 Azure 服务总线。根据namespace/values.yaml,我要不要安装rabbitmq。
PS - 我已将所有组件创建为子图表,以便它们都是单个版本的一部分。
在SO中有这么多问题与此类似,但没有一个问题解决了我的问题.
我已经托管了一个angularjs网站http://localhost:49595,我正在调用一个Web Api 2.1服务http://localhost:63019.我在web.config中的web api服务器上启用了CORS.GET/buildings/1和GET/buildings /?$ top = 10&$ skip = 1的请求工作正常.
说到PUT,我收到以下错误:{"Message":"找不到与请求URI匹配的HTTP资源http://localhost:63019/buildings/1105'.","MessageDetail":"在控制器'Building'上找不到匹配的操作要求." }

我可以看到浏览器将OPTIONS请求发送到服务器,但是要更新的实际数据不在请求中(在fiddler中检查.不确定OPTIONS查询是否正常).

我在web api上启用了跟踪,我看到了以下日志.https://gist.github.com/rnarayana/8905229 OPTIONS请求(第69行)说它需要进行PUT.在第77行附近,看起来它选择了正确的动作.然后控制器被处理掉.此外,控制器正在实例化两次.
我怎样才能知道发生了什么?
在AngularJS中调用代码:尝试:
$http.put('http://localhost:63019/buildings/' + building.BuildingId, building)
.then(onSuccess, onError);
Run Code Online (Sandbox Code Playgroud)
也
$http({
url: urlBase + '/' + building.BuildingId,
dataType: 'json',
method: 'PUT',
data: building,
headers: {"Content-Type": "application/json"}
}).then(onSuccess, onError);
Run Code Online (Sandbox Code Playgroud)
这些在我的控制器中:
[HttpGet]
[Route("buildings/")]
public IHttpActionResult GetAll(ODataQueryOptions<BuildingViewModel> queryOptions)
{
}
[HttpGet]
[Route("buildings/{id}")]
public IHttpActionResult Get(long id)
{
}
[Route("buildings/")]
[HttpPost]
public IHttpActionResult Post(BuildingEditViewModel buildingEditViewModel)
{
}
[HttpPut]
[Route("buildings/{id}")]
public …Run Code Online (Sandbox Code Playgroud) 我有两个服务器 - 网络和应用程序.Web服务器(IIS)仅提供静态文件 - HTML/CSS/JS.在执行JS时,客户端从应用服务器获取数据(使用Web API的HTTP服务,由OWIN自托管).我需要引入身份验证,以便限制我的数据和内容.
我可以使用SSL,我可以将用户名/密码传递给web api,对其进行身份验证并获取令牌.我可以为将来的web api请求传递此令牌.在我的客户端应用程序javascript(使用AngularJS完成)中,我还可以维护用户是否经过身份验证,具有哪些角色等信息(用户体验).但为了安全起见,我需要能够确保所请求的html内容(在Web服务器中)也进行了身份验证和授权.我怎样才能做到这一点?
我应该更改我的应用程序以使Web服务器在内部而不是从客户端调用应用程序服务器吗?我可以使用MVC控制器或ASP.NET,但由于我使用的是AngularJS,我认为它不是必需的,并且有点重复.我应该抛弃纯.html文件并转移到.cshtml吗?
当您的数据来自与您的htmls不同的服务器时,如何在Angular + .NET世界中完成此操作?
authentication asp.net-mvc authorization asp.net-web-api angularjs
我的C++程序创建了一个二叉搜索树.我知道如何在预订,后订单和有序中打印出值.
但是,我想做一些更困难的事情.如果有人在纸上画树,我想以他们看的方式打印出值.它的根部位于顶部的中心,它的左下方是儿童的左下方,而右下方是正确的儿童.其余的节点将相应地绘制.
我怎样才能做到这一点?
是否可以(在Visual Studio中使用SonarLint扩展)在Debug构建期间禁用Sonar分析器,但是在Release版本中是否启用它们?原因是将解决方案连接到SonarQube大大增加了构建时间.
我正在使用Angular bootstrap Modal来显示一个弹出窗口.单击textarea/browser back按钮外的退格键,我想取消弹出窗口并继续更改URL.默认行为是模态后面的页面发生变化,但模态仍然位于顶部.
在模态实例的控制器中,我添加了一个
$ scope.$ on('$ routeChangeStart',function(){...});
它工作正常,但每当再次调用控制器时我都会看到错误.再次调用$ modalInstance.dismiss(),但在库中,它会抛出异常.
这是带有代码和repro步骤的plunkr.观察浏览器控制台是否有错误.
http://plnkr.co/UKXa6uFvy0ODHylMj28s
我做错了什么,或者是modal.js中的错误?
编辑:我不认为我的控制器范围是正确的.为什么AddCtrl的$ scope.$ on('$ routeChangeStart'在我导航到MainCtrl时被调用?
angularjs ×3
asp.net-mvc ×1
binary-tree ×1
c# ×1
c++ ×1
cors ×1
indexing ×1
modal-dialog ×1
nodes ×1
owin ×1
printf ×1
put ×1
sonarlint ×1
sonarlint-vs ×1
sql ×1