我必须解析一个如下所示的XML文档:
<?xml version="1.0" encoding="UTF-8" ?>
<m:OASISReport xmlns:m="http://oasissta.caiso.com/mrtu-oasis/xsd/OASISReport.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://oasissta.caiso.com/mrtu-oasis/xsd/OASISReport.xsd http://oasissta.caiso.com/mrtu-oasis/xsd/OASISReport.xsd">
<m:MessagePayload>
<m:RTO>
<m:name>CAISO</m:name>
<m:REPORT_ITEM>
<m:REPORT_HEADER>
<m:SYSTEM>OASIS</m:SYSTEM>
<m:TZ>PPT</m:TZ>
<m:REPORT>AS_RESULTS</m:REPORT>
<m:MKT_TYPE>HASP</m:MKT_TYPE>
<m:UOM>MW</m:UOM>
<m:INTERVAL>ENDING</m:INTERVAL>
<m:SEC_PER_INTERVAL>3600</m:SEC_PER_INTERVAL>
</m:REPORT_HEADER>
<m:REPORT_DATA>
<m:DATA_ITEM>NS_PROC_MW</m:DATA_ITEM>
<m:RESOURCE_NAME>AS_SP26_EXP</m:RESOURCE_NAME>
<m:OPR_DATE>2010-11-17</m:OPR_DATE>
<m:INTERVAL_NUM>1</m:INTERVAL_NUM>
<m:VALUE>0</m:VALUE>
</m:REPORT_DATA>
Run Code Online (Sandbox Code Playgroud)
问题是名称空间"http://oasissta.caiso.com/mrtu-oasis/xsd/OASISReport.xsd"有时可能会有所不同.我想完全忽略它,只是从标记MessagePayload下游获取我的数据.
我到目前为止使用的代码是:
String[] namespaces = new String[1];
String[] namespaceAliases = new String[1];
namespaceAliases[0] = "ns0";
namespaces[0] = "http://oasissta.caiso.com/mrtu-oasis/xsd/OASISReport.xsd";
File inputFile = new File(inputFileName);
Map namespaceURIs = new HashMap();
// This query will return all of the ASR records.
String xPathExpression = "/ns0:OASISReport
/ns0:MessagePayload
/ns0:RTO
/ns0:REPORT_ITEM
/ns0:REPORT_DATA";
xPathExpression += "|/ns0:OASISReport
/ns0:MessagePayload …Run Code Online (Sandbox Code Playgroud) 我试图从一个SQL服务器(源)重新创建一个数据库(MyDB )到另一个(目标).源位于我的本地计算机上,是SQL Server 2014. 目标位于远程计算机上,它是SQL Server 2012.以下是我采取的步骤:
osql -S target -d master -E -i scripts.sql -o output.log
1> 2> 1> 2> 3> 4> 5> 6> 7> 8>消息5133,级别16,状态1,服务器目标,行2目录查找文件"C:\ Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\MyDB.mdf"因操作系统错误3而失败(系统找不到指定的路径.).消息1802,级别16,状态1,服务器目标,行2 CREATE DATABASE失败.无法创建列出的某些文件名.检查相关错误.1> 2>消息5011,级别14,状态5,服务器目标,行1用户无权更改数据库'MyDB',数据库不存在,或者数据库未处于允许访问检查的状态.消息5069,级别16,状态1,服务器目标,行1 ALTER DATABASE语句失败.
以下是"scripts.sql"的前几行:
USE [master]
GO
/****** Object: Database [MyDB] Script Date: 4/12/2016 4:30:20 PM ******/
CREATE DATABASE [MyDB]
CONTAINMENT = NONE …Run Code Online (Sandbox Code Playgroud) 我在React组件中收到以下警告:
相关代码如下:
import React, { PropTypes } from 'react';
import { Checkbox } from 'react-bootstrap';
const MyComponent = (params) => {
function onSelect(event) {
params.onSelect(event, params.data.id);
}
return (
<tr key={params.data.id}>
{params.isSelectable ? (
<Checkbox onChange={onSelect}>
<td>{params.data.firstName} </td>
<td>{params.data.lastName} </td>
</Checkbox>
) : (
<div>
<td>{params.data.firstName} </td>
<td>{params.data.lastName} </td>
</div>
)}
</tr>
);
Run Code Online (Sandbox Code Playgroud)
};
如果我删除div标签,我会收到以下错误:
相邻的JSX元素必须包装在一个封闭的标签中
我是React的新手,所以我不太清楚这里发生了什么.有什么问题,我该如何解决?
更新:我的React版本是15.3.2.
我有一个Angular 1和Angular 2混合应用程序,它使用以下指南设置,从AngularJS升级和将Angular 1应用程序迁移到Angular 2.我的根组件看起来像这样:
import { NgModule, Component } from '@angular/core';
import { RouterModule, UrlHandlingStrategy } from '@angular/router';
import { BrowserModule } from '@angular/platform-browser';
import { UpgradeModule } from '@angular/upgrade/static';
import { RouterUpgradeInitializer } from '@angular/router/upgrade';
import { MyModule } from './Mymodule/my-module';
export class Ng1Ng2UrlHandlingStrategy implements UrlHandlingStrategy {
shouldProcessUrl(url: any) {
return url.toString().startsWith("/Mymodule");
}
extract(url: any) {
return url;
}
merge(url: any, whole: any) {
return url;
}
}
@Component({
selector: 'root-component',
template: `
<router-outlet></router-outlet> …Run Code Online (Sandbox Code Playgroud) javascript angularjs angular2-routing angular angular-hybrid
所以我对 SignalR 很陌生,事实上我现在只使用了几天。无论如何,当我的应用程序首次启动时,我收到以下错误:
相关应用程序的代码位于两个项目中,一个 Web API 和一个单页应用程序 (SPA)。第一个是我的后端代码 (C#),第二个是我的客户端代码 (AngularJS)。我认为问题可能是由于相关项目在不同的端口上运行。我的 SignalR 集线器所在的 Web API 位于端口 60161 上,SPA 位于 60813 上。我的集线器声明如下:
public class ReportHub : Hub
{
public void SendReportProgress(IList<ReportProgress> reportProgress)
{
this.Clients.All.broadcastReportProgress(reportProgress);
}
public override Task OnConnected()
{
this.Clients.All.newConnection();
return base.OnConnected();
}
}
Run Code Online (Sandbox Code Playgroud)
然后在我的 Web API 的 Startup.cs 文件中,我像这样初始化 SignalR:
public void Configuration(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
config.Services.Replace(typeof(IHttpControllerActivator), new NinjectFactory());
config.MessageHandlers.Add(new MessageHandler());
//set up OAuth and Cors
this.ConfigureOAuth(app);
config.EnableCors();
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
// Setting up SignalR
app.Map("/signalr", …Run Code Online (Sandbox Code Playgroud) 最近我的一些 MS Test 单元测试已经停止工作。我在测试中没有改变任何东西。我得到的错误如下:
测试失败 - [文件名]
消息:找不到方法:'System.String Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.get_TestContextMessages()'。
在“参考”下,在我的单元测试项目(在 Visual Studio 中)中,我有以下内容:
Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter
Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices
Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface
Microsoft.VisualStudio.TestPlatform.TestFramework
Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions
起订量
Ploeh.AutoFixture
Ploeh.AutoFixture.AutoMoq
有人知道这里有什么问题吗?
我有一个带有 AngularJS 前端(客户端)和一个 Web API 后端(服务器)的单页应用程序 (SPA)。我还使用 SignalR 在客户端和服务器之间进行消息传递。在我的开发机器上一切正常(使用 IIS Express),但是当部署到服务器进行测试时,我在尝试与集线器建立连接时收到以下错误:
抛出异常:System.Net.Http.HttpRequestException:发送请求时出错。---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: 无法建立连接,因为目标机器在 System.Net 127.0.0.1:60161 主动拒绝它.Sockets.Socket.EndConnect(IAsyncResult asyncResult) at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception) ---内部异常结束堆栈跟踪 --- 在 System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) 在 System.Net.Http.HttpClientHandler。
即使它从客户端成功连接到 SignalR 集线器:
我的客户端 SignalR 代码的相关部分是这样的(在 AnglarJS 服务中):
// Setting up the SignalR hub
var hub = new Hub("reportHub", {
listeners: {
'newConnection': function (id) {
},
'broadcastReportProgress': function …Run Code Online (Sandbox Code Playgroud) 因此,我有一个SPA(单页应用程序),其中AngularJS作为前端,.NET Web API作为后端(C#)。我需要根据某些用户操作来生成SQL Server Reporting Services(SSRS)报告,即选择一些数据并按一个按钮。这是我现有架构的粗略插图:
FRONT END BACK END SSRS Report
========== ========= ===========
**AngularJS Web page**-->**.NET Web API controller**-->**Intermediary class (passes arguments to report)** -->**Generate report and save to file**
Run Code Online (Sandbox Code Playgroud)
这行得通,但问题是在生成报告时,应用程序必须坐在那里等待它们完成,同时用户无法执行任何操作。如果要创建许多报告(例如100多个),则可能要花一两分钟以上的时间,这对我来说是不可接受的。
因此,这就是RabbitMQ的用处。我的想法是让.NET Web API控制器将消息发送到服务器,一旦服务器接收到消息,就会对上面的中间类进行调用,从而生成报告,然后响应发送回客户端,让他们知道已生成报告。我认为我需要为此使用RPC方案,因此我已经在RabbitMQ网站上完成了相应的教程,而且看起来很简单。
我不知道的是,这是我的问题,是如何从.NET Web API应用程序启动客户端和服务器。坦白说,我现在有点迷茫,因为这是我第一次体验任何消息,并且在架构方面我不确定如何处理它。如果我能详细了解整个工作原理,则可以从那里进行编码,但是到现在为止,我很难想象如何构造应用程序。
所以,问题:
如何从.NET Web API控制器启动RabbitMQ服务器和客户端?服务器和客户端应该是类库还是控制台应用程序,还是完全其他?
我正在构想的体系结构可以工作还是有更好的方法?
任何有关如何实现我要达到的目标的一般建议将不胜感激。
所以,我有在ASP.NET Web API应用程序与异步方法,下面的程序流程:一个API控制器调用异步方法(我们称之为asyncMethod1),这需要从第二异步方法的东西(我们称之为asyncMethod2).API控制器并不真正需要知道asyncMethod1何时完成,尽管为了给用户提供反馈会很好.另一方面,asyncMethod1确实需要知道asyncMethod2何时完成.
这是相关代码:
public class MyController : ApiController
{
private CustomClass customClass;
public IHttpActionResult WorkMethod(TestObject testObject)
{
Debug.WriteLine("WorkMethod - before calling asyncMethod1");
Task.Run(async () => await this.asyncMethod1(testObject)).Wait(); // ERROR HERE
Debug.WriteLine("WorkMethod - after calling asyncMethod1");
return Ok();
}
private async Task asyncMethod1(TestObject testObject)
{
Debug.WriteLine("asyncMethod1 - before calling asyncMethod2");
Dictionary<string, string> x = await this.asyncMethod2(testObject);
Debug.WriteLine("asyncMethod1 - after calling asyncMethod2");
try
{
using (Task<IList<TestResponse>> testTask = customClass.DoAsyncWork1(x))
{
IList<TestResponse> response = await testTask;
// Do …Run Code Online (Sandbox Code Playgroud) c# ×4
angularjs ×3
asp.net ×3
javascript ×2
signalr ×2
angular ×1
async-await ×1
database ×1
html ×1
migration ×1
mstest ×1
namespaces ×1
osql ×1
rabbitmq ×1
reactjs ×1
signalr-hub ×1
sql ×1
sql-server ×1
unit-testing ×1
xml ×1
xpath ×1