小编Ara*_*hor的帖子

System.ObjectDisposedException引发了WebSocket通信

我正在尝试使用WebSockets在Web浏览器客户端和ASP.NET服务器之间进行通信.

我制作了一组不同大小的请求,每个请求之间经过了几秒钟的时间.三个第一个正确传递,但是精确的一个,没有特别是另一个,关闭WebSocket连接,在服务器端抛出异常.

此异常的错误消息和堆栈跟踪如下所示:

致命错误:无法访问已处置的对象.
对象名:'System.Web.WebSockets.AspNetWebSocket'.
在System.Web.WebSockets.AspNetWebSocket.ThrowIfDisposed()
在System.Web.WebSockets.AspNetWebSocket.SendAsyncImpl(ArraySegment 1个缓冲器,WebSocketMessageType为messageType,布尔endOfMessage,的CancellationToken的CancellationToken,布尔performValidation)
在System.Web.WebSockets.AspNetWebSocket.SendAsync(
在[我的代码路径这里...]的ArraySegment 1缓冲区,WebSocketMessageType messageType,Boolean endOfMessage,CancellationToken cancellationToken)

这可能是一个线程问题,因为我在使用async与websockets通信的函数的各处使用方法.

我知道这个代码(at socket.SendAsync)抛出了异常:

public class SocketTranslater
{

    private WebSocket socket;
    private JavaScriptSerializer serializer;

    // [...]

    private ArraySegment<byte> Encode(Object data)
    {
        string json = serializer.Serialize(data);
        return (new ArraySegment<byte>(Encoding.UTF8.GetBytes(json)));
    }


    public async Task Send(Object packet)
    {
        ArraySegment<byte> encoded = this.Encode(packet);

        await socket.SendAsync(encoded, WebSocketMessageType.Text, true, CancellationToken.None);
    }
}
Run Code Online (Sandbox Code Playgroud)

套接字是从另一个类创建的:

public class EventSender : IHttpHandler
{
    private static List<SocketTranslater> socketTranslaters = new List<SocketTranslater>();

    public void ProcessRequest(HttpContext context) …
Run Code Online (Sandbox Code Playgroud)

c# asp.net objectdisposedexception websocket

5
推荐指数
1
解决办法
1605
查看次数

为什么php工匠什么都不迁移?

运行"php artisan migrate"什么都不做:没有数据库修改,没有消息(没有"无需迁移"),没有错误.

没有记录添加到表迁移中.

以前,命令"php artisan migrate"工作正常.

文件夹数据库/迁移中的一个迁移文件具有以下内容:

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class VidsTableEdit14 extends Migration {

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('vids', function(Blueprint $table)
        {
            //
            $table->integer('test');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('vids', function(Blueprint $table)
        {
            //
        });
    }

}
Run Code Online (Sandbox Code Playgroud)

如何让"php artisan migrate"工作?

php migration migrate laravel artisan

5
推荐指数
1
解决办法
2330
查看次数

Valgrind Memory Leak Reachable

继续获取可访问的内存泄漏printfscanf声明.我根本不需要泄漏.当我运行报告时,它说我在print语句和scan语句中得到了可达到的泄漏.我的问题是如何修复泄漏?

这是valgrind报告:

kidslove-MacBook:src kidslove $ valgrind --leak-check = full --show-leak-kinds = all ./a.out

==6405== Memcheck, a memory error detector
==6405== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==6405== Using Valgrind-3.11.0.SVN and LibVEX; rerun with -h for copyright info
==6405== Command: ./a.out
==6405== 
Enter File Name: input2.txt
1.  Print the array sorted by street.
2.  Print the array sorted by city.
3.  Print the array sorted by state then city
4.  Print the …
Run Code Online (Sandbox Code Playgroud)

c valgrind memory-leaks

5
推荐指数
1
解决办法
502
查看次数

在utf-8网站上str_replace with acute(')时输出错误

在输入表单并提交后,我试图用字符串替换一个带有急性(')的叛逆者(').

<?= str_replace("'","´",$_POST['string']) ?>
Run Code Online (Sandbox Code Playgroud)

例如,字符串是:"Jan's Motel">应该成为"Jan's Motel"

这在使用charset iso-8859-1时效果很好,但我需要我的网站在utf-8中.

我utf-8结果字符串是"Jan's Motel"

我不明白为什么它变成"Â"而不是"'"

这是我的示例代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>notitle</title>
  </head>

  <body>
    <form action="?" method="post">
      <input type="text" name="string" value="<?= str_replace("'","´",$_POST['name']) ?>" />
    </form>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

html php utf-8

5
推荐指数
1
解决办法
275
查看次数

将组织用作文件夹是一种好习惯吗?

我在这个问题上已经看到Github组织是一个"重新组合"存储库的解决方案,作为文件夹中的文件.

但在我阅读Github组织文档时,似乎组织的目的是代表开发人员组或公司,而不仅仅是个人存储库程序集.

所以我的问题是:如果我独自工作,将组织用作文件夹是一种好习惯吗?

我的意思是,组织是否被设计为用作文件夹?如果没有,很多人会以这种方式使用它吗?

github multiple-repositories github-organizations

5
推荐指数
0
解决办法
174
查看次数

用 C# 发送电子邮件 namecheap 私人电子邮件

我使用 namecheap 域名设置了私人电子邮件,但发送电子邮件时遇到问题。下面是我的代码。我错过了什么吗?我每次都会收到超时消息。

//Send email to end user
MailMessage mm = new MailMessage();
foreach(string to in toList)
{
    mm.To.Add(to);
}
mm.From = new System.Net.Mail.MailAddress("fromaddress");
mm.Subject = subject;
mm.Body = body;
mm.IsBodyHtml = true;
var smtp = new SmtpClient
{
    Host = "mail.privateemail.com",
    Port = 465,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    Credentials = new NetworkCredential("username", "pw"),
    Timeout = 20000
};
smtp.Send(mm);
Run Code Online (Sandbox Code Playgroud)

c# email

5
推荐指数
1
解决办法
2702
查看次数

带有glDrawArrays的线图和来自向量的GL_LINE_STRIP

如何使用GL_LINE_STRIP绘制多行,但不能在这些行之间绘制额外的行,因为它会跳转到下一个值?见图

在此输入图像描述

现在红线是图中线条的实际值,但黄色是因为它完成了line1的值并继续下一步但仍在这些值之间画一条线.

我正在使用的代码是这样的:vector1包含所有行值.

glGenVertexArrays(1,&Vector1_VAObject);
glGenBuffers(1,&Vector1_VBObject);

glBindVertexArray(Vector1_VAObject);
glBindBuffer(GL_ARRAY_BUFFER, Vector1_VBObject);

glBufferData(GL_ARRAY_BUFFER,vector1.size()*sizeof(GLfloat), &vector1[0] ,GL_STATIC_DRAW);
glVertexAttribPointer(0,3,GL_FLOAT,GL_FALSE, 3*sizeof(GLfloat),(GLvoid*)0);
//Clean
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER,0);
glBindVertexArray(0);

glUseProgram(lineShader->getProgram());
glBindVertexArray(Vector1_VAObject);

glDrawArrays(GL_LINE_STRIP,0,vector1.size());


glBindVertexArray(0);
Run Code Online (Sandbox Code Playgroud)

所以我的问题是如何解决这个问题呢?因此它遍历向量并且仅绘制线的值,而不是在完成绘制第一行之后跳转的值.

c++ opengl vector gldrawarrays

5
推荐指数
2
解决办法
1万
查看次数

如何在解决方案资源管理器上保留源文件夹层次?

我在Linux上创建了一个C++项目,我将源文件分组到许多目录中以组织自己.

我正在使用CMake进行编译,每个子目录上都有一个CMakeFiles.txt.

srcs
|--folderA
|  |--Toto.cpp
|  |--Tata.cpp
|
|--folderB
|  |--Foo.cpp
|  |--Bar.cpp
[...]
Run Code Online (Sandbox Code Playgroud)

最近,我使用Visual Studio 2015打开它,它找到了每个源文件,但只是将整个列表放在解决方案资源管理器的"源文件"文件夹中.

Source Files
|--Toto.cpp
|--Tata.cpp
|--Foo.cpp
|--Bar.cpp
Run Code Online (Sandbox Code Playgroud)

我打算拥有大量的文件,很快找到一个.

有没有办法明确告诉它尊重解决方案资源管理器上的文件夹层次结构?

c++ cmake visual-studio solution-explorer visual-studio-2015

5
推荐指数
1
解决办法
711
查看次数

新表达式评估顺序(指针赋值)

请考虑以下代码:

Class* p = nullptr; //global var
Run Code Online (Sandbox Code Playgroud)

此代码由线程1执行:

p = new Class;
Run Code Online (Sandbox Code Playgroud)

此代码在线程2上执行:

if (p != nullptr) ...; // does the standard gurantee that the pointer will be assigned only after object is constructed ?
Run Code Online (Sandbox Code Playgroud)

我的问题是标准强制执行何时p分配指向分配的内存?例1:

  • new表达式调用operator new
  • p 被指定指向新分配的内存
  • Class调用'sc`tor并将分配的内存传递给它

例2:

  • new表达式调用operator new
  • Class调用'sc`tor并将分配的内存传递给它
  • p 被指定指向新分配的内存

c++ multithreading c++11

3
推荐指数
1
解决办法
196
查看次数

获取git命令列表

我想为每个git命令创建一个别名.

因为它们中有很多,我想把它们放在一个列表中然后在我的循环中循环.bashrc.

有没有办法让它们在shell脚本中?

git bash git-commands

3
推荐指数
1
解决办法
915
查看次数