我有一个根据Messenger平台指南设置的简单消息机器人.它在过去的几个月里一直很好用,每天发送大约6条消息.我根本没碰过它,但突然,发送一条消息,即呼叫https://graph.facebook.com/v2.6/me/messages?access_token=...,返回:
{"message":"(#230)需要pages_messaging_subscriptions权限才能管理对象","输入":"OAuthException","code":230,"fbtrace_id":"DVs ...."}
这是出乎意料的.事情进展顺利,我在这段时间里甚至没有登录到Facebook,我甚至没有看过我的webhook回调网站.但是从8月17日开始的某个时间,每次尝试发送的消息都会返回此异常.
有什么变化?无论如何,我pages_messaging_subscriptions在Webhooks页面订阅页面中找不到名称的订阅字段.
我需要什么来让我的消息机器人再次工作?
我想尝试simpleGrid在HotTowel项目.说到:
this.gridViewModel = new ko.simpleGrid.viewModel({
data: this.items, ....
Run Code Online (Sandbox Code Playgroud)
它引发了一个例外:
无法获取未定义或空引用的属性"viewModel"
我走过去发现ko.simpleGrid未定义.
是否必须添加任何其他文件或从标准Knockout.js库中获取simpleGrid?
我在azurewebsites上有一个简单的mvc网站(使用VS互联网模板),与同一数据中心的SQL Azure数据库通信.此时数据库只是用于内置的SimpleMembership Provider.我已经从默认的App_Data mdf文件切换到Azure SQL.它工作正常,但有时一段时间后,它会给:
建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)
留言很长:
SQLExpress数据库文件自动创建错误:
连接字符串使用应用程序的App_Data目录中的数据库位置指定本地Sql Server Express实例.提供程序尝试自动创建应用程序服务数据库,因为提供程序确定数据库不存在.要成功检查应用程序服务数据库是否存在并自动创建应用程序服务数据库,必须满足以下配置要求:
但我没有使用SQL Server Express的连接字符串!
立即重新启动网站不会删除错误.
没有改变任何东西并在15分钟后重新启动网站给出:
502 - Web服务器在充当网关或代理服务器时收到无效响应.
您正在查找的页面存在问题,无法显示.当Web服务器(充当网关或代理)与上游内容服务器联系时,它从内容服务器收到无效响应.
以前,我可以通过从VS重新发布将网站恢复到正常工作状态.但是在过去的一个小时里,我尝试过并尝试过,我无法让网站再次运行.
SQL Server Express真的有什么问题?
我的连接字符串部分包含:
<connectionStrings>
<add name="DefaultConnection" connectionString="Server=tcp:sabl6h4---.database.windows.net,1433;Database=MVC;User ID=test@sabl6h4---;Password=----;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;" providerName="System.Data.SqlClient" />
<add name="Entities" connectionString="metadata=res://*/Data.Model1.csdl|res://*/Data.Model1.ssdl|res://*/Data.Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=sabl6h4---.database.windows.net;initial catalog=MVC;user id=test;password=----;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
为了确保,我将sabl6h4---.database.windows.net复制并粘贴到SSMS中并使用登录测试进行连接,并且没有问题地打开了数据库.
一天后:我创建了一个新的azurewebsite并发布了完全相同的项目和相同的web.config.它没有问题,工作正常.几分钟后,发生了完全相同的错误!
再过三个小时:去吃午饭,回来,点击浏览器刷新按钮,网站再次启动.我确信有人在后端的设置中鬼混.
asp.net-mvc entity-framework connection-string azure-web-roles azure-sql-database
使用VS 2013,标准MVC模板和身份提供程序框架
用户已登录,我有:
//....
UserManager.AddToRole(User.Identity.GetUserId(), "Members"); # Line X
RedirectToAction("Index", "Members");
Run Code Online (Sandbox Code Playgroud)
会员控制员如下:
[Authorize(Roles="Members")]
public class MembersController : Controller
{
// GET: Members
public ActionResult Index()
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
执行第X行后,我可以确认用户已添加到表中dbo.AspNetUserRoles.但是,用户在到达成员控制器时未通过角色检查. User.IsInRole("Members")返回false.
如果用户注销然后再次登录,则将访问"成员"控制器,即User.IsInRole("Members")现在返回true.
有缓存吗?为何延误?我该如何克服它?
我也尝试将第X行的方法转换为异步方法并使用UserManager.AddToRoleAsync.同样的延迟效应仍然存在.
根据http://blog.jsinh.in/asp-net-5-configuration-microsoft-framework-configurationmodel/,事情发生了变化.但是,我无法从该文档中了解如何读取appSettings密钥.虽然有一个从ini文件读取的例子.
如何避免使用旧的System.Configuration.ConfigurationManager来读取AppSettingsweb.config中的键值?
我已在 VS Code 中将 Angular 添加到我的 Node Express 应用程序中。我是通过 Angular CLI 的ng new.
在tsconfig.json,outDir指向./dist/out-tsc。还有另外一个outDir在angular-cli.json。
当我运行时ng build,Javascript 文件outDir以angular-cli.json. 是什么outDir在tsconfig.json呢?./dist/out-tsc未创建文件夹。
我有:
<input type="file" id="f" name="f" onchange="c()" multiple />
Run Code Online (Sandbox Code Playgroud)
每次用户选择文件时,我都会通过将每个元素压f.files入数组来构建所有选定文件的列表:
var Files = [];
function c() {
for (var i=0;i<this.files.length;i++) {
Files.push(this.files[i]);
};
}
Run Code Online (Sandbox Code Playgroud)
在提交表单时,f.files仅包含上次选择操作中的项目,因此我将需要更新自己累积f.files的FileList项目列表:
const upload=document.getElementById("f");
upload.files = files;
Run Code Online (Sandbox Code Playgroud)
但是第二行给出:
未捕获到的TypeError:无法在'HTMLInputElement'上设置'files'属性:提供的值不是'FileList'类型的。
我为它分配一个数组并不高兴。如何FileList从FileList先前收集的元素列表中构造一个对象?
附带问题:我认为Javascript使用动态类型。为什么在这里抱怨类型错误?
在 中index.js,我有:
console.log("index.js loading...");
import express from "express";
export const app = express();
import { router as login } from "./login.js";
app.use("/login", login);
Run Code Online (Sandbox Code Playgroud)
在login.js我有:
console.log("login.js loading...");
import express from "express";
import { app } from "./index.js";
import passport from "passport";
app.use(passport.initialize());
Run Code Online (Sandbox Code Playgroud)
当尝试运行时,我ReferenceError: Cannot access 'app' before initialization在 中的最后一个语句中得到了一个login.js。打印“login.js loading...”行,但不打印“index.js loading...”。
当这两个文件相互导入时,app在 的第三行中是否未完全初始化index.js?加载顺序是如何确定的?index.js如果先加载会出现错误吗?
我正在使用的Add方法System.Net.CookieContainer.它多年来一直运作良好,但我突然得到:
用"2"参数调用"添加"的异常:"'值'='321,386,%2F%3Fa%3D1,http%3A%2F%2Fwww.xxxx.com%2Fpremium%2Fmoney'部分cookie是无效的."
我正在添加从网页返回的cookie.网页的原始标题是:
...
_chartbeat_uuniq=1;
_chartbeat5=321,386,%2F%3Fa%3D1,http%3A%2F%2Fwww.xxx.com%2Fpremium%2Fmoney;
gs_p_GSN-375009-Z=0;
...
Run Code Online (Sandbox Code Playgroud)
cookie值有什么问题?是逗号吗?
我不是安全专家,很难弄清楚跨域资源策略和 CORS 之间的区别。我看到两者都依赖于服务器发送的标头,并且信任浏览器不允许将服务器内容传递给浏览器中的请求者(如果服务器这么说)。我哪里理解错了?
asp.net-mvc ×2
c# ×2
javascript ×2
.net ×1
angular ×1
asp.net-core ×1
cors ×1
cross-origin-resource-policy ×1
es6-modules ×1
facebook ×1
httpcookie ×1
knockout-2.0 ×1
knockout.js ×1
messenger ×1
node.js ×1
roleprovider ×1
tsconfig ×1
typescript ×1