在这里,我们将给大家分享关于利用WarensoftStockService编写高频交易软件的知识,让您更了解高频交易软件开发的本质,同时也会涉及到如何更有效地android–导致这个堆栈跟踪的原因是什
在这里,我们将给大家分享关于利用Warensoft Stock Service编写高频交易软件的知识,让您更了解高频交易软件开发的本质,同时也会涉及到如何更有效地android – 导致这个堆栈跟踪的原因是什么? (gtalkservice&jivesoftware.smack)、azure-service-fabric – 无法找到依赖项Microsoft.AspNet.Server.WebListener> = 1.0.0-rc1-final、c# – Microsoft Azure Service Bus Timeout Exceptions、c# – ServiceStack JsonServiceClient,强制为localhost线路上的流量?的内容。
本文目录一览:- 利用Warensoft Stock Service编写高频交易软件(高频交易软件开发)
- android – 导致这个堆栈跟踪的原因是什么? (gtalkservice&jivesoftware.smack)
- azure-service-fabric – 无法找到依赖项Microsoft.AspNet.Server.WebListener> = 1.0.0-rc1-final
- c# – Microsoft Azure Service Bus Timeout Exceptions
- c# – ServiceStack JsonServiceClient,强制为localhost线路上的流量?
利用Warensoft Stock Service编写高频交易软件(高频交易软件开发)
无论是哪种交易软件,对于程序员来讲,最麻烦的就是去实现各种算法。本文以SAR算法的实现过程为例,为大家说明如何使用Warensoft Stock Service来实现高频交易软件的快速开发。
目前WarensoftStockService已经实现了C# 版本的客户端驱动,可以直接在Nuget上搜索Warensoft并安装。客户端驱动已经编译为跨平台.net standard1.6版本,可以在桌面应用(WPF,Winform)、Xamarin手机应用(WP,Android,IOS)、Web(asp.net,asp.net core)中应用,操作系统可以是Window,Android,IOS,IMAC,Linux。
下面将以Android为例(注:本Demo可以直接平移到WPF中),说明SAR指标的实现过程,其他指标计算的综合应用,在其他文章中会专门讲解。
软件环境说明
IDE |
VS2017 RC |
客户端 |
Android4.4 |
服务器环境 |
Ubuntu16 |
客户端运行环境 |
Xamarin.Forms |
客户端图形组件 |
Oxyplot |
建立一个Xamarin.Forms手机App
这里选择基于XAML的App,注意共享库使用PCL。
工程目录下图所示:
添加Nuget引用包
首先,为Warensoft.StockApp共享库添加Oxyplot引用(此处可能需要科学上网),如下图所示:
然后再分别安装Warensoft.EntLib.Common,Warensoft.EntLib.StockServiceClient,如下图所示:
然后为Warensoft.StockApp.Droid添加OxyPlot的NuGet引用,如下所示:
然后在Android的MainActivity中加入平台注册代码:
OxyPlot.Xamarin.Forms.Platform.Android.PlotVieWrenderer.Init();
MainActivity.cs的代码如下所示:
protected override void OnCreate(Bundle bundle) { TabLayoutResource = Resource.Layout.Tabbar; ToolbarResource = Resource.Layout.Toolbar; OxyPlot.Xamarin.Forms.Platform.Android.PlotVieWrenderer.Init(); base.OnCreate(bundle); global::Xamarin.Forms.Forms.Init(this,bundle); LoadApplication(new App()); }
实现主窗口
主界面的实现采用MVVM模式来实现,关于MVVM的讲解,网上应该有很多了,后面的文章中,我会把我自己的理解写出来,让大家分享。本DEMO的MVVM框架已经集成在了Warensoft.EntLib.Common中,使用起来很简单。
第一步:
编写主界面(需要了解XAML语法),并修改MainPage.xaml,如代码如下:
<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:Warensoft.StockApp" xmlns:oxy="clr-namespace:OxyPlot.Xamarin.Forms;assembly=OxyPlot.Xamarin.Forms" x:> <!-- 此处要注意在头中注册OxyPlot的命名空间 xmlns:oxy="clr-namespace:OxyPlot.Xamarin.Forms;assembly=OxyPlot.Xamarin.Forms"--> <Grid> <!--此处添加图形组件--> <oxy:PlotView Model="{Binding Model}" VerticalOptions="Center" HorizontalOptions="Center" /> </Grid> </ContentPage>
第二步:
打开MainPage.xaml.cs并为视图(图面)添加其对应的模型,代码如下(注意要引入Warensoft.EntLib.Common):
public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); //此处注册viewmodel this.BindingContext = new MainPageviewmodel(); } } public class MainPageviewmodel : viewmodelBase { public override Task ShowCancel(string title,string message) { throw new NotImplementedException(); } public override Task<bool> ShowConfirm(string title,string message) { throw new NotImplementedException(); } public override void ShowMessage(string message) { Application.Current.MainPage.displayAlert("提示",message,"OK"); } protected override void InitBindingProperties() { } }
第三步:
定义图像组件的模型,并为图像添加X、Y坐标轴,添加一个K线和一条直线,代码如下所示:
public PlotModel Model { get { return this.GetProperty<PlotModel>("Model"); } set { this.SetProperty("Model",value); } } protected override void InitBindingProperties() { this.Model = new PlotModel(); //添加X、Y轴 this.Model.Axes.Add(new OxyPlot.Axes.DateTimeAxis() { Position = AxisPosition.Bottom,StringFormat = "HH:mm",MajorGridlinestyle = Linestyle.solid,IntervalType = DateTimeIntervalType.Minutes,IntervalLength = 30,MinorIntervalType = DateTimeIntervalType.Minutes,Key = "Time",}); this.Model.Axes.Add(new OxyPlot.Axes.Linearaxis() { Position = AxisPosition.Right,MinorGridlinestyle = Linestyle.Dot,IsPanEnabled = false,IsZoomEnabled = false,TickStyle = TickStyle.Inside,}); //添加K线和直线 this.candle = new OxyPlot.Series.CandleStickSeries(); this.line = new OxyPlot.Series.Lineseries() { Color = OxyColors.Blue }; this.Model.Series.Add(this.candle); this.Model.Series.Add(this.line); }
第四步:
添加获取K线函数(以OKCoin为例),代码如下:
/// <summary> /// 读取OKCoin的15分钟K线 /// </summary> /// <returns></returns> public async Task<List<Kline>> LoadKline() { var url = $"https://www.okcoin.cn/api/v1/kline.do?symbol=btc_cny&type=15min&size=100"; HttpClient client = new HttpClient(); var result = await client.GetStringAsync(url); dynamic k = Newtonsoft.Json.JsonConvert.DeserializeObject(result); List<Kline> lines = new List<Kline>(); int index = 0; foreach (var item in k) { List<double> d = new List<double>(); foreach (var dd in item) { d.Add((double)((dynamic)dd).Value); } lines.Add(new Kline() { Data = d.ToArray()}); index++; } return lines; }
第五步:
添加定时刷新并绘制图像的函数,代码如下所示:
private StockServiceDriver driver; public async Task UpdateData() { //初始化WarensoftSocketService客户端驱动,此处使用的是测试用AppKey和SecretKey this.driver = new StockServiceDriver("C6651783-A3B9-4B72-8B02-A2E67A59C5A6","6C442B3AF58D4DDA81BB03B353C0D7D8"); await Task.Run(async()=> { while (true) { try { //读取K线 var kline =await this.LoadKline(); //远程Warensoft Stock Service 分析SAR曲线 var sar = await this.driver.GetSAR(kline); //绘图,注意办为需要更新UI,因此需要在主线程中执行更新代码 this.SafeInvoke(()=> { //每次更新前,需要将旧数据清空 this.candle.Items.Clear(); this.line.Points.Clear(); foreach (var item in kline.OrderBy(k=>k.Time)) { //注意将时间改为OxyPlot能识别的格式 var time = OxyPlot.Axes.DateTimeAxis.Todouble(item.Time); this.candle.Items.Add(new HighLowItem(time,item.High,item.Low,item.Open,item.Close)); } if (sar.OperationDone) { foreach (var item in sar.AdditionalData.OrderBy(s=>s.DateTime)) { var time= OxyPlot.Axes.DateTimeAxis.Todouble(item.DateTime); this.line.Points.Add(new DataPoint(time,item.Value)); } } //更新UI this.Model.InvalidatePlot(true); }); } catch (Exception ex) { } await Task.Delay(5000); } }); }
完整的viewmodel代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Xamarin.Forms; using Warensoft.EntLib.Common; using Warensoft.EntLib.StockServiceClient; using OxyPlot; using OxyPlot.Axes; using OxyPlot.Series; using Warensoft.EntLib.StockServiceClient.Models; using System.Net.Http; namespace Warensoft.StockApp { public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); this.BindingContext = new MainPageviewmodel(); } } public class MainPageviewmodel : viewmodelBase { private CandleStickSeries candle; private Lineseries line; public override Task ShowCancel(string title,"OK"); } public PlotModel Model { get { return this.GetProperty<PlotModel>("Model"); } set { this.SetProperty("Model",}); //添加K线和直线 this.candle = new OxyPlot.Series.CandleStickSeries(); this.line = new OxyPlot.Series.Lineseries() { Color = OxyColors.Blue }; this.Model.Series.Add(this.candle); this.Model.Series.Add(this.line); this.UpdateData(); } /// <summary> /// 读取OKCoin的15分钟K线 /// </summary> /// <returns></returns> public async Task<List<Kline>> LoadKline() { var url = $"https://www.okcoin.cn/api/v1/kline.do?symbol=btc_cny&type=15min&size=100"; HttpClient client = new HttpClient(); var result = await client.GetStringAsync(url); dynamic k = Newtonsoft.Json.JsonConvert.DeserializeObject(result); List<Kline> lines = new List<Kline>(); int index = 0; foreach (var item in k) { List<double> d = new List<double>(); foreach (var dd in item) { d.Add((double)((dynamic)dd).Value); } lines.Add(new Kline() { Data = d.ToArray()}); index++; } return lines; } private StockServiceDriver driver; public async Task UpdateData() { //初始化WarensoftSocketService客户端驱动,"6C442B3AF58D4DDA81BB03B353C0D7D8"); await Task.Run(async()=> { while (true) { try { //读取K线 var kline =await this.LoadKline(); //远程Warensoft Stock Service 分析SAR曲线 var sar = await this.driver.GetSAR(kline); //绘图,注意办为需要更新UI,因此需要在主线程中执行更新代码 this.SafeInvoke(()=> { //每次更新前,需要将旧数据清空 this.candle.Items.Clear(); this.line.Points.Clear(); foreach (var item in kline.OrderBy(k=>k.Time)) { //注意将时间改为OxyPlot能识别的格式 var time = OxyPlot.Axes.DateTimeAxis.Todouble(item.Time); this.candle.Items.Add(new HighLowItem(time,item.Close)); } if (sar.OperationDone) { foreach (var item in sar.AdditionalData.OrderBy(s=>s.DateTime)) { var time= OxyPlot.Axes.DateTimeAxis.Todouble(item.DateTime); this.line.Points.Add(new DataPoint(time,item.Value)); } } //更新UI this.Model.InvalidatePlot(true); }); } catch (Exception ex) { } await Task.Delay(5000); } }); } } }
最后编译,并部署到手机上,最终运行效果如下:
最终编译完毕的APK文件(下载)。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程小技巧!
android – 导致这个堆栈跟踪的原因是什么? (gtalkservice&jivesoftware.smack)
下面的详细信息,但基本上我正在试图了解我的Droid上发生了什么错误.
细节:
我正在努力加快C2DM的速度.我正在测试使用Urban Airship的Push Notification服务(目前为止IMO非常酷)通过C2DM向Android上运行的应用程序发送通知.
我的Droid(运行Android 2.2.2)不显示通知,每次我认为在设备上收到通知时,我都会看到写入LogCat的堆栈跟踪.
我不知道是什么产生了堆栈跟踪.我知道每次我通过Urban Airship的网站向设备发送推送通知时都会生成它.
我非常确定我已经正确配置了我的C2DM,Urban Airship和Android应用程序,因为我可以在Android模拟器上使用相同的应用程序和Google帐户成功接收和显示通知.仅供参考 – Android应用程序是Urban Airship的示例Android推送应用程序,使用我的配置信息进行编辑.
由于它在Android模拟器中工作并且在我的实际设备上失败,我假设我的设备有一些导致它失败的东西.因此,对下面的堆栈跟踪感兴趣.
11-11 16:15:28.894: E/TalkProvider(4433): query db caught
11-11 16:15:28.894: E/TalkProvider(4433): java.lang.IllegalArgumentException: the bind value at index 2 is null
11-11 16:15:28.894: E/TalkProvider(4433): at android.database.sqlite.sqliteProgram.bindString(sqliteProgram.java:234)
11-11 16:15:28.894: E/TalkProvider(4433): at android.database.sqlite.sqliteQuery.bindString(sqliteQuery.java:182)
11-11 16:15:28.894: E/TalkProvider(4433): at android.database.sqlite.sqliteDirectCursorDriver.query(sqliteDirectCursorDriver.java:48)
11-11 16:15:28.894: E/TalkProvider(4433): at android.database.sqlite.sqliteDatabase.rawQueryWithFactory(sqliteDatabase.java:1345)
11-11 16:15:28.894: E/TalkProvider(4433): at android.database.sqlite.sqliteQueryBuilder.query(sqliteQueryBuilder.java:330)
11-11 16:15:28.894: E/TalkProvider(4433): at com.google.android.gsf.talk.TalkProvider.queryInternal(TalkProvider.java:1740)
11-11 16:15:28.894: E/TalkProvider(4433): at com.google.android.gsf.talk.TalkProvider.query(TalkProvider.java:1436)
11-11 16:15:28.894: E/TalkProvider(4433): at android.content.ContentProvider$Transport.query(ContentProvider.java:163)
11-11 16:15:28.894: E/TalkProvider(4433): at android.content.ContentResolver.query(ContentResolver.java:245)
11-11 16:15:28.894: E/TalkProvider(4433): at com.google.android.gsf.gtalkservice.DatabaseHelper.getoffTheRecordCursor(DatabaseHelper.java:756)
11-11 16:15:28.894: E/TalkProvider(4433): at com.google.android.gsf.gtalkservice.ChatSession.queryOtrCursor(ChatSession.java:206)
11-11 16:15:28.894: E/TalkProvider(4433): at com.google.android.gsf.gtalkservice.ChatSession.<init>(ChatSession.java:168)
11-11 16:15:28.894: E/TalkProvider(4433): at com.google.android.gsf.gtalkservice.ChatMgr.createChatSession(ChatMgr.java:264)
11-11 16:15:28.894: E/TalkProvider(4433): at com.google.android.gsf.gtalkservice.ChatMgr.processIncomingMessage(ChatMgr.java:721)
11-11 16:15:28.894: E/TalkProvider(4433): at com.google.android.gsf.gtalkservice.ChatMgr.processpacket(ChatMgr.java:521)
11-11 16:15:28.894: E/TalkProvider(4433): at org.jivesoftware.smack.PacketReader$ListenerWrapper.notifyListener(PacketReader.java:1860)
11-11 16:15:28.894: E/TalkProvider(4433): at org.jivesoftware.smack.PacketReader.processListeners(PacketReader.java:451)
11-11 16:15:28.894: E/TalkProvider(4433): at org.jivesoftware.smack.PacketReader.access$200(PacketReader.java:91)
11-11 16:15:28.894: E/TalkProvider(4433): at org.jivesoftware.smack.PacketReader$3.run(PacketReader.java:154)
11-11 16:15:28.894: E/Smack/Packet(4433): [PacketReader] listenerThread: caught exception
11-11 16:15:28.902: E/Smack/Packet(4433): notify conn error. close connection!
11-11 16:15:28.902: E/Smack/Packet(4433): java.lang.NullPointerException
11-11 16:15:28.902: E/Smack/Packet(4433): at com.google.android.gsf.gtalkservice.ChatSession.queryOtrCursor(ChatSession.java:208)
11-11 16:15:28.902: E/Smack/Packet(4433): at com.google.android.gsf.gtalkservice.ChatSession.<init>(ChatSession.java:168)
11-11 16:15:28.902: E/Smack/Packet(4433): at com.google.android.gsf.gtalkservice.ChatMgr.createChatSession(ChatMgr.java:264)
11-11 16:15:28.902: E/Smack/Packet(4433): at com.google.android.gsf.gtalkservice.ChatMgr.processIncomingMessage(ChatMgr.java:721)
11-11 16:15:28.902: E/Smack/Packet(4433): at com.google.android.gsf.gtalkservice.ChatMgr.processpacket(ChatMgr.java:521)
11-11 16:15:28.902: E/Smack/Packet(4433): at org.jivesoftware.smack.PacketReader$ListenerWrapper.notifyListener(PacketReader.java:1860)
11-11 16:15:28.902: E/Smack/Packet(4433): at org.jivesoftware.smack.PacketReader.processListeners(PacketReader.java:451)
11-11 16:15:28.902: E/Smack/Packet(4433): at org.jivesoftware.smack.PacketReader.access$200(PacketReader.java:91)
11-11 16:15:28.902: E/Smack/Packet(4433): at org.jivesoftware.smack.PacketReader$3.run(PacketReader.java:154)
11-11 16:15:28.902: D/Smack(4433): [XMPPConn] close connection, notifyClosed=false
解决方法:
我做了一些谷歌搜索,并能够从2010年开始追踪described in this Google Group post的解决方法.该问题似乎与Google Talk应用程序有关,建议的解决方法如下:
“I went into Talk and turned off auto-sign in, then I signed out. I
tested again and I was able to receive the message inside my
application.”
一旦我这样做,我就可以在没有堆栈跟踪的设备上接收推送通知.如果有人可以添加有关为什么会发生这种情况的任何信息,我会感兴趣.
azure-service-fabric – 无法找到依赖项Microsoft.AspNet.Server.WebListener> = 1.0.0-rc1-final
当我向我的ServiceFabric解决方案添加ASP.NET 5 WebApp时,我在project.json中看到一个如下所示的错误:
Unable to locate Dependency Microsoft.AspNet.Server.WebListener >=
1.0.0-rc1-final
我是ServiceFabric和ASP.NET 5的超级菜鸟,我该如何调试呢?
解决方法
选项1:在Web项目中,打开project.json,进行某种修饰(添加空格或换行符)并保存.这将强制执行包还原,这应该会关闭WebListener.
选项2:将WebListener包显式添加到Web项目.右键单击Web项目,选择Manage NuGet Packages,然后搜索Microsoft.AspNet.Server.WebListener并进行安装.
如果这些都不起作用,我们偶尔会看到有大量NuGet包源加剧这个问题的情况.您可以尝试取消选择除nuget.org之外的所有来源,并且通常会修复它.
c# – Microsoft Azure Service Bus Timeout Exceptions
调用QueueClient x.Send(…)时
Exception rethrown at [0]: at
Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult
result) at
Microsoft.ServiceBus.Messaging.Sbmp.DuplexRequestBindingElement.DuplexRequestSessionChannel.DuplexCorrelationAsyncResult.End(IAsyncResult
result) at
Microsoft.ServiceBus.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory `1.RequestSessionChannel.RequestAsyncResult.b__4(RequestAsyncResult
thisPtr,IAsyncResult r) at
Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult
result)
调用NamespaceManager x.GetQueue(…)时
PROGRESS queue processing Failed. System.TimeoutException: The request
has timed out after 60000 milliseconds. The successful completion of
the request cannot be determined. Additional queries should be made to
determine whether or not the operation has succeeded.
TrackingId:bdffb6bd-5367-4573-aaa3-8ea9a03f5a2b,TimeStamp:5/28/2015
8:39:46 AM —> System.Net.WebException: The request was aborted: The
request was canceled. at
System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at
Microsoft.ServiceBus.Messaging.ServiceBusResourceOperations.GetAsyncResult`1.b__49(GetAsyncResult`1
thisPtr,IAsyncResult r) at
Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult
result)
调用NamespaceManager x.SubscriptionExists(…)时
Exception doing periodic work: System.TimeoutException: The request
has timed out after 00:10:00 milliseconds. The successful completion
of the request cannot be determined. Additional queries should be made
to determine whether or not the operation has succeeded. Server stack
trace: Exception rethrown at [0]: at
Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult
result) at
Microsoft.ServiceBus.NamespaceManager.OnEndSubscriptionExists(IAsyncResult
result) at
Microsoft.ServiceBus.NamespaceManager.SubscriptionExists(String
topicPath,String name) …
调用QueueClient x.Receive(…)时
PROGRESS queue processing Failed.
Microsoft.ServiceBus.Messaging.MessagingCommunicationException: Error
during communication with Service Bus. Check the connection
information,then retry. —>
System.ServiceModel.CommunicationObjectFaultedException: Internal
Server Error: The server did not provide a meaningful reply; this
might be caused by a premature session shutdown.
TrackingId:04ba0220-0350-4806-9c65-c2bba9671054,Timestamp:28.05.2015
13:00:55 Server stack trace: Exception rethrown at [0]: at
Microsoft.ServiceBus.Common.Exceptiondispatcher.Throw(Exception
exception) at
Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult
result) at
Microsoft.ServiceBus.Messaging.Sbmp.DuplexRequestBindingElement.DuplexRequestSessionChannel.DuplexCorrelationAsyncResult.End(IAsyncResult
result) at
Microsoft.ServiceBus.Messaging.Sbmp.DuplexRequestBindingElement.DuplexRequestSessionChannel.EndRequest(IAsyncResult
result) at
Microsoft.ServiceBus.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.RequestAsyncResult.b__4(RequestAsyncResult
thisPtr,IAsyncResult r) at
Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult
result) ….
例外与ServiceBus明显相关,并且它们是非确定性的.抛出它们的函数,例如Send,GetQueue,SubscriptionExists,每分钟被调用不超过100-120次.我们在代码中没有改变任何内容,并且增加超时值(即使是非常高的值,比如10分钟)也无济于事.此外,我们不相信它是一些与网络相关的问题(在我们这边),因为当应用程序从不同的地方运行时会发生同样的错误.
最近有没有其他人遇到过这种例外情况?微软是否存在问题,或者我们遗漏了什么?
解决方法
我们确实了解到,我们在相同和其他数据中心中创建的新Service Bus命名空间用于在问题发生时进行测试时没有出现相同的问题. Service Bus组没有提供任何帮助,只会说只有SLA才能保证响应时间.
c# – ServiceStack JsonServiceClient,强制为localhost线路上的流量?
var client = new JsonServiceClient("http://localhost:32949/test"); var request = new MyRequest { ClassificationId = new ClassificationId (21300) }; var response = client.Post(request);
然而,当观察fiddler的交通时,我什么也看不见.我想观察流量,以便更好地了解如何为我必须编写的其他客户端构建所需的JSON请求.
为了使上面的代码工作,我不得不引用具有该服务的程序集,我怀疑ServiceStack正在进行一些聪明的调用以避免发送HTTP请求.是这样的吗?
为什么我没有看到fiddler的任何流量,我该如何强行呢?
通过浏览器到localhost端点的HTTP流量正确显示.
解决方法
C:\Windows\System32\drivers\etc\hosts
并添加以下条目
127.0.0.1 mymachine.com
然后将您的客户端指向mymachine.com而不是localhost
关于利用Warensoft Stock Service编写高频交易软件和高频交易软件开发的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于android – 导致这个堆栈跟踪的原因是什么? (gtalkservice&jivesoftware.smack)、azure-service-fabric – 无法找到依赖项Microsoft.AspNet.Server.WebListener> = 1.0.0-rc1-final、c# – Microsoft Azure Service Bus Timeout Exceptions、c# – ServiceStack JsonServiceClient,强制为localhost线路上的流量?等相关内容,可以在本站寻找。
本文标签: