我有一个网站,我已注册为Facebook应用程序 - 我现在有一个应用程序ID.
我的网站是ASP.net C#.当用户点击按钮时,我希望它将预定义的消息发布到他们的墙上.我期待Facebook向用户提供登录对话框 - 他们登录并授予我的网站应用程序的发布权限.
有没有人有任何样本代码可以做到这一点?我想我需要使用图形API,但我见过的所有示例都使用PHP - 我对此一无所知.我正在寻找一个使用Java Script(我几乎什么都不知道)或C#(漂亮!)的例子.
*更新*
我设法得到access_token.现在我通过Facebook C#API拨打电话发布到墙上.我收到错误消息:
(#803)您请求的某些别名不存在:profile_id
我已经通过api代码,发现它正试图发布到以下地址:{ https://graph.facebook.com/PROFILE_ID/feed },帖子数据是:message = Sample + message + from + C%23 + SDK&=的access_token 199209316768200 | 2.1avFTZuDGR4HJ7jPFeaO3Q __ 3600.1302897600.1-100000242760733 |.R4DkNDf4JCb6B2F64n5TSQwBqvM
我很确定我的令牌应该有效.在请求访问令牌之前,我在应用程序授权请求中请求了publish_stream,如下所示:
Response.Redirect ("https://www.facebook.com/dialog/oauth?client_id=" + myAppId + "&redirect_uri=" + myURL + "&scope=publish_stream");
Run Code Online (Sandbox Code Playgroud)
实际发出请求的sdk代码如下:
private string MakeRequest(Uri url, HttpVerb httpVerb,
Dictionary<string, string> args)
{
if (args != null && args.Keys.Count > 0 && httpVerb == HttpVerb.GET)
{
url = new Uri(url.ToString() + EncodeDictionary(args, true));
}
HttpWebRequest request = …Run Code Online (Sandbox Code Playgroud) 我有一个IIS7托管服务,我需要向两个不同的客户端公开.对于其中一个客户端,我需要强制执行比另一个更严格的限制行为.
这意味着我需要定义两个标签,因为这些只能从标签中引用,那么我还需要其中两个?
我已经定义了以下web.config.问题是,当我尝试浏览到任一服务以便我可以提取元数据时,我收到以下错误:
Parser Error Message: A child element named 'service' with same key already exists at the same configuration scope.
Collection elements must be unique within the same configuration scope (e.g. the same application.config file). Duplicate key value: 'WCFTwoEndpoints.Calculate'.
Run Code Online (Sandbox Code Playgroud)
我是以正确的方式来做这件事的吗?
<system.serviceModel>
<services>
<service name="WCFTwoEndpoints.Calculate" behaviorConfiguration ="NotThrottled">
<endpoint address="http://localhost/WCFTwoEndpoints/Calculate.svc"
binding="wsHttpBinding" bindingConfiguration="" name="Calculator"
contract="WCFTwoEndpoints.ICalculate" />
<endpoint binding="mexHttpBinding" name="mex" contract="IMetadataExchange" />
</service>
<service name="WCFTwoEndpoints.Calculate" behaviorConfiguration ="Throttled">
<endpoint address="http://localhost/WCFTwoEndpoints/ThrottledCalculate.svc"
binding="wsHttpBinding" bindingConfiguration="" name="ThrottledCalculator"
contract="WCFTwoEndpoints.ICalculate" />
<endpoint binding="mexHttpBinding" name="mex" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors> …Run Code Online (Sandbox Code Playgroud) 我有一个win 2008r2服务器.默认网站的Enabled Protocols设置为"http,net.tcp".当在默认网站下创建任何新应用程序时,我希望默认具有相同的启用协议.任何人都可以建议如何做到这一点?目前,当我添加应用程序时,使用仅启用"http"的协议创建一个
我有一个简单的实体数据模型(使用VS2010),我从一个包含三个不相关的表的简单SQL Server数据库进行逆向工程.
我尝试使用以下代码将数据保存到数据库:
var dbOptions = new ARC_WHENTECHModel.TEMP_LANDED_WHENTECH_OPTION_POSITION();
//first map fields required for standard di processing
dbOptions.OPTION_POSITION_SOURCE_ID = webSvcOption.TDR + "_" + webSvcOption.CNTR + "_" + webSvcOption.CRV;
dbOptions.INSERTED_DT = DateTime.Now;
dbOptions.CURRENT_IND = "Y";
//now map the data we've pulled from the web service call
dbOptions.CA = webSvcOption.CA;
dbOptions.CDTP = webSvcOption.CDTP;
dbOptions.CMD = webSvcOption.CMD;
dbOptions.CNTR = webSvcOption.CNTR;
dbOptions.CPP = webSvcOption.CPP;
dbOptions.PDTP = webSvcOption.PDTP;
dbOptions.SPR = webSvcOption.SPR;
dbOptions.TDR = webSvcOption.TDR;
context.AddToTEMP_LANDED_WHENTECH_OPTION_POSITION(dbOptions);
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
但我得到以下异常:
An EdmType cannot be mapped to CLR classes multiple …Run Code Online (Sandbox Code Playgroud) 我在Windows Server 2008r2上运行64位Powershell ISE.
在调试时我设置了一个变量:
$dbName = "db1"
Run Code Online (Sandbox Code Playgroud)
然后,我做了以下更改
$dbName = "db2"
Run Code Online (Sandbox Code Playgroud)
我再次单步执行脚本,即使调试器跨过修改后的行,当我将鼠标悬停在$ dbName变量上时,它仍显示值"db1".我似乎可以解决这个问题的唯一方法是重启那个ISE - 这很痛苦!
谁能告诉我哪里出错了?
*更新*
我在模块中有以下功能:
Function SampleFunction()
{
$dbName = "db1"
write-host $dbName
}
Run Code Online (Sandbox Code Playgroud)
我有一个powershell脚本导入moduleL
Import-Module -Name ".\BadPsm.psm1"
Run Code Online (Sandbox Code Playgroud)
从powershell ISE我在执行函数之前在$ dbName ="db1"上放置一个断点,方法是在执行窗口中输入"SampleFunction".一切都很好,值"db1"被写入输出窗口.
然后我更改函数,以便$ dbName ="db2".我通过再次执行Import-Module -Name".\ BadPsm.psm1"重新导入模块.
当我再次执行该函数时,我点击断点,跳过并看到$ dbName仍等于"db1","db1"也写入输出窗口.
为了帮助说明我已经在youtube上发布了一个简短的截屏视频:youtube链接
我已经看到构造函数链接的答案,但它们不适用于我的问题.
我有一个以下构造函数,需要几个参数:
public SerilogHelper(string conString, int minLevel)
{
var levelSwitch = new LoggingLevelSwitch();
levelSwitch.MinimumLevel = (Serilog.Events.LogEventLevel)(Convert.ToInt32(minLevel));
_logger = new LoggerConfiguration()
.MinimumLevel.ControlledBy(levelSwitch)
.WriteTo.MSSqlServer(connectionString: conString,
tableName: "Logs",
autoCreateSqlTable: true)
.CreateLogger();
}
Run Code Online (Sandbox Code Playgroud)
这个构造函数的一个特定客户端将不具有参数所需的值,因此我希望能够调用这个简单的构造函数,该构造函数将获得所需的值,然后调用第一个构造函数:
public SerilogHelper()
{
string minLevel = SSOSettingsFileManager.SSOSettingsFileReader.ReadString(
"LCC.Common", "serilog.level");
string conString = SSOSettingsFileManager.SSOSettingsFileReader.ReadString(
"LCC.Common", "serilog.connectionstring");
SerilogHelper(conString, minLevel);
}
Run Code Online (Sandbox Code Playgroud)
问题是,在调用第二个构造函数时,我得到一个红色的波浪形,消息SerilogHelper是一个'类型'但是像'变量'一样使用
I have a dotnet 5 function app that I've been building and deploying from a devops pipeline for a couple of weeks.
Following the most recent release, I see the following error in App Insights:
Exception type System.TimeoutException Exception message The operation has timed out. LogLevel Error prop__{OriginalFormat} Failed to start a new language worker for runtime: dotnet-isolated. Category Microsoft.Azure.WebJobs.Script.Workers.Rpc.RpcFunctionInvocationDispatcher System.TimeoutException: The operation has timed out. at Microsoft.Azure.WebJobs.Script.Grpc.GrpcWorkerChannel.StartWorkerProcessAsync()
csproj file:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<Nullable>enable</Nullable>
<UserSecretsId>4f786da6-0d47-4ccc-b343-638a6e34e1cf</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<None …Run Code Online (Sandbox Code Playgroud) 这看起来很简单,但我猜语法/库已经改变了很多次,找到一个样本就像试图追踪一大碗肉酱中一根意大利面条的整个路径。
我有以下 C# dotnet 5 Azure 函数:
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequestData req,
ILogger log)
string result = "for the love of god, I just want to return this string"
Run Code Online (Sandbox Code Playgroud)
我想返回带有 200 响应代码的“结果”字符串。
我尝试了以下方法
return result != null ? New OkObjectResult(result) : new StatusCodeResult(500);
Run Code Online (Sandbox Code Playgroud)
但它不是返回一个字符串,而是返回:
{
"Value": "content of result variable here",
"Formatters": [],
"ContentTypes": [],
"DeclaredType": null,
"StatusCode": 200
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我有一个 C# dotnet core 3.1 Azure Function App(名为 func-utrngen-dev-001),我想将其配置为通过托管标识对 Sql Azure 数据库进行身份验证。
采取的步骤:
为 sql server 帐户创建 AAD 管理员
使用该帐户打开与 sql server 的连接
运行以下命令创建与 azure 函数应用程序同名的“包含用户”
从外部提供商创建用户 [func-utrngen-dev-001]
更改角色 db_datareader 添加成员 [func-utrngen-dev-001]
更改角色 db_datawriter 添加成员 [func-utrngen-dev-001]
确保在 Sql Server\Security\Firewalls 和虚拟网络 blas 下的 Azure 门户中将“允许 Azure 服务和资源访问此服务器”设置为“是”
确保函数应用的“身份”边栏选项卡上的“系统分配\状态”设置为“打开”
当函数应用尝试进行身份验证时,我收到以下错误:
用户“<令牌识别的主体>”登录失败
因此,我安装了 Microsoft 的“MSI Validator”工具并执行了此处描述的步骤。我从 Kudu 会话的 Powershell 窗口运行了以下命令:
./msi-validator.exe test-connection -r sql -e "数据源=sql-utrngen-dev-001.database.windows.net;初始目录=utrngen;"
它成功获取了令牌,但随后失败,并出现与我的函数应用程序相同的错误:
无法连接到 SQL。异常:用户“<令牌识别的主体>”登录失败
接下来我应该尝试什么?
azure-active-directory azure-functions azure-managed-identity
azure ×2
c# ×2
asp.net ×1
asp.net-mvc ×1
azure-bicep ×1
constructor ×1
facebook ×1
iis-7 ×1
powershell ×1
wcf ×1