我正在使用带有asp.net core 2.0的C#开发一个带有REST Api的Web应用程序
我想要实现的是当客户端向端点发送请求时,我将运行与客户端请求上下文分离的后台任务,如果任务成功启动,该任务将结束.
我知道有HostedService,但问题是HostedService在服务器启动时启动,据我所知,没有办法从控制器手动启动HostedService.
这是一个简单的代码来演示这个问题.
[Authorize(AuthenticationSchemes = "UsersScheme")]
public class UsersController : Controller
{
[HttpPost]
public async Task<JsonResult> StartJob([FromForm] string UserId, [FromServices] IBackgroundJobService backgroundService) {
//check user account
(bool isStarted, string data) result = backgroundService.Start();
return JsonResult(result);
}
}
Run Code Online (Sandbox Code Playgroud) 我从visualstudio.com下载了Visual Studio Community 2013 Update 4 iso文件,在Windows 8.1 x64上安装VS ,我已经验证了iso文件的SHA1校验和,结果是正确的.
问题是设置在应用:Visual Studio核心功能停止,然后失败并最终确定
-Error图标和"Visual Studio核心功能-ENU安装期间的致命错误"
- 三个消息上的警告图标:"Microsoft Visual C++ 2013 32位编译器 - ENU资源包失败","Microsoft Visual C++ 2013编译器 - ENU资源包失败"和"Microsoft Visual C++ 2013 x64本机编译器 - ENU资源包失败"
到现在为止我做了以下事情: -
1)在安装之前禁用防病毒,防火墙和防恶意软件,并以Administartor身份运行安装.
2)安装前清除%temp%,C:\ ProgramData\Package Cache和AppData\Local\Temp文件夹.
3)使用.Net Framewrok设置验证实用程序验证所有已安装的.Net框架.
4)使用系统文件检查工具修复丢失或损坏的系统文件,如https://support.microsoft.com/KB/929833中所述,结果是"Windows资源保护未发现任何完整性违规".
并在日志中发现了这些错误(ERROR来自vs_professionalcore.msi): -
应用程序数据\本地的\ Temp\dd_vs_community_20141221193705.log
[0B88:12C4][2014-12-21T19:45:57]i000: MUX: Installation size in bytes for package: vs_professionalcore MaxAppDrive: 0 MaxSysDrive: 1821361272 AppDrive: 0 SysDrive: 1335334008
[0B88:12C4][2014-12-21T19:45:57]i000: MUX: Return Code:0x0 Msi Messages:0 Result …Run Code Online (Sandbox Code Playgroud) installation install windows-installer visual-studio visual-studio-2013
我试图在mac osx 10.12上设置Cocoapods,我试图在终端中执行此命令它挂在接收对象上: -
cd ~/.cocoapods/repos
GIT_TRACE=1; GIT_CURL_VERBOSE=1 git clone http://github.com/CocoaPods/Specs.git master --verbose
Run Code Online (Sandbox Code Playgroud)
这是终端输出: -
Cloning into 'master'...
* Couldn't find host github.com in the .netrc file; using defaults
* Trying 192.30.253.112...
* Connected to github.com (192.30.253.112) port 80 (#0)
> GET /CocoaPods/Specs.git/info/refs?service=git-upload-pack HTTP/1.1
Host: github.com
User-Agent: git/2.7.4 (Apple Git-66)
Accept: */*
Accept-Encoding: gzip
Pragma: no-cache
< HTTP/1.1 301 Moved Permanently
< Content-length: 0
< Location: https://github.com/CocoaPods/Specs.git/info/refs?service=git-upload-pack
< Connection: close
<
* Closing connection 0
* Issue another request to …Run Code Online (Sandbox Code Playgroud) 我正在使用 ASP.NET Core 3.0 预览版 8 开发 Web 应用程序。我想要实现的是直接从 .crt 和 .key (PKCS#1) 文件创建一个 X509Certificate2,以便使用新的 .NET Core 3.0 与 Kestrel 一起使用内置在此链接中介绍的 Api。
目前我正在使用此命令将证书转换为 .pfx 文件
openssl pkcs12 -export -in $CERTIFICATE_FILE -inkey $KEY_FILE -out $OUTPUT_CERTIFICATE_FILE -passout pass:$OUTPUT_CERTIFICATE_PASSWORD
Run Code Online (Sandbox Code Playgroud)
然后我创建 X509Certificate2 并将其与 Kestrel 一起使用:
webBuilder.ConfigureKestrel((context, options) =>
{
options.ConfigureHttpsDefaults(httpsOptions =>
{
if (!context.HostingEnvironment.IsProduction())
return;
string outputCertificateFile = context.Configuration["OUTPUT_CERTIFICATE_FILE"];
string outputCertificatePassword = context.Configuration["OUTPUT_CERTIFICATE_PASSWORD"];
var tlsCertificate = new X509Certificate2(outputCertificateFile, outputCertificatePassword);
httpsOptions.ServerCertificate = tlsCertificate;
});
});
Run Code Online (Sandbox Code Playgroud)
编辑:-
我已经根据上面链接中的示例实现了新的 Api:
using (var …Run Code Online (Sandbox Code Playgroud) 我正在Windows 8.1 64bit上开发java swing应用程序,带有4GB RAM,JDK版本为8u20 64bit.
问题是当我使用带有Monitor选项的Netbeans Profiler启动应用程序时.
加载第一个Jframe时,应用程序内存堆约为18mb,JVM进程大小约为50mb(image1).
然后当我启动包含带有webView的JFxPanel的其他Jframe时,Heap跳转到45mb并且JVM 进程非常快地跳到700mb(image2),这非常令人困惑.然后,当我关闭第二个JFrame并且它被释放并调用System.gc()并且JVM执行GC(在大多数情况下)时,堆降低到大约20mb,但JVM进程从不丢弃(image3).
为什么内存堆(45 Mb)和JVM进程(699 Mb)之间存在巨大差异?为什么JVM需要所有内存?以及如何减少这个数额?我正在使用这些vm选项启动应用程序:
-Xms10m -Xmx60m -Xss192k
-XX:+UseG1GC -XX:MinHeapFreeRatio=5
-XX:MaxHeapFreeRatio=10 -XX:PermSize=20m
-XX:MaxPermSize=32m
Run Code Online (Sandbox Code Playgroud)
编辑: -我刚刚读到该链接JVM内存使用失控的问题,他有同样的问题,但情况不同他的堆大小是JVM进程内存总大小的33%,在我的情况下小于7 %,他同时做多个工作(Tomcat webapp),我没有(java swing应用程序),他没有使用我所做的相同VM参数启动他的应用程序.
更新: - 在第一个JFrame启动后(image1)

第二个JFrame启动后(image2)

第二个JFrame关闭后(image3)

编辑2: - 我刚刚使用上面相同的VM参数尝试了相同的应用程序并添加了
-client
-XX:+UseCompressedOops
Run Code Online (Sandbox Code Playgroud)
并且使用了JDK 8u25 32位,因为如本答案/sf/answers/1083005381/中所述,64位版本不包含JRE中的客户端文件夹,并将忽略-client参数.
结果是当第二个JFrame打开时,总内存进程跳转到540Mb,并且堆大小(在三个点中)与64位版本中的数量几乎相同,这是否确认这是一个与问题相关的问题到JVM(相同的堆大小和总进程大小的260Mb差异)?
我正在Windows 8.1 64bit上开发一个JavaFX应用程序,带有4GB RAM,JDK版本为8u45 64bit.
我想捕获部分屏幕使用,Robot但问题是我无法获取我想要捕获的锚窗格的屏幕坐标,我不想使用,snapshot因为输出质量很差.这是我的代码.
我在这个链接中看到了这个问题在 JavaFX中获取Node的全局坐标, 并且这个 在javaFX中获得了一个节点的真实位置, 我尝试了每个答案,但没有任何工作,图像显示了屏幕的不同部分.
private void capturePane() {
try {
Bounds bounds = pane.getLayoutBounds();
Point2D coordinates = pane.localToScene(bounds.getMinX(), bounds.getMinY());
int X = (int) coordinates.getX();
int Y = (int) coordinates.getY();
int width = (int) pane.getWidth();
int height = (int) pane.getHeight();
Rectangle screenRect = new Rectangle(X, Y, width, height);
BufferedImage capture = new Robot().createScreenCapture(screenRect);
ImageIO.write(capture, "png", new File("image.png"));
} catch (IOException | AWTException ex) {
ex.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud) 我使用官方 C# MongoDb 强类型驱动程序版本 2.5.0 与 MongoDB 交互。
我有类 Book 和 Page 如下:
public class Book
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
public string Title { get; set; }
public string AuthorName { get; set; }
public int PublishYear { get; set; }
public List<Page> Pages { get; set; } = new List<Page>();
}
public class Page
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
public int Number { get; set; }
public string …Run Code Online (Sandbox Code Playgroud) 我正在使用Swift 2.1在XCode 7.1上开发iOS应用程序,我正在尝试使用CommonCrypto库使用AES 128位和PKCS7填充进行简单加密.
代码工作,但每次我尝试将NSData对象转换NSString为String然后我得到一个零,应用程序崩溃.
我调试了应用程序,NSData对象不是零.
当我尝试解包String可选时,会发生错误.
如何解决这个问题?并将NSData对象正确转换为String?这是我的代码
static func AESEncryption(phrase: String,key: String,ivKey: String,encryptOrDecrypt: Bool) -> String {
let phraseData = phrase.dataUsingEncoding(NSUTF8StringEncoding)
let ivData = ivKey.dataUsingEncoding(NSUTF8StringEncoding)
let keyData: NSData! = key.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
let keyBytes = UnsafePointer<Void>(keyData.bytes)
let keyLength = size_t(kCCKeySizeAES128)
let dataLength = Int(phraseData!.length)
let dataBytes = UnsafePointer<Void>(phraseData!.bytes)
let bufferData = NSMutableData(length: Int(dataLength) + kCCBlockSizeAES128)!
let bufferPointer = UnsafeMutablePointer<Void>(bufferData.mutableBytes)
let bufferLength …Run Code Online (Sandbox Code Playgroud) 我正在使用官方 C# MongoDb 强类型驱动程序版本 2.5.0 与 MongoDB 交互。
我有一个经度和纬度坐标数组,我想将它们存储在 MongoDB 中。
用于存储坐标数组的类的名称是什么?所以我最近可以执行以下查询,检查如果给定坐标靠近坐标数组中的任何点,如何实现这一点?
这是演示该问题的简单代码。
var coordinates = new List<(double latitude, double longitude)>();
//Store coordinates array in the database
(double latitude, double longitude) point = (-33.847927, 150.6517805);
int maxDistance = 300;//Max Distance in meters
//Check if any point in the coordinates array is 300 m near the given point
Run Code Online (Sandbox Code Playgroud)
编辑:-
根据下面@CodeFuller评论中提到的这个问题:-
数组上的 MongoDB 地理空间索引(多键 + 地理空间)
MongoDB 不支持数组上的地理空间索引,因此请考虑以下类:
class SomeDocument {
public ObjectId Id { get; set; }
public string Title { …Run Code Online (Sandbox Code Playgroud)