我在asp.net-core 2.0 preview1中开发了应用程序.我使用Visual Studio 2017在Windows上开发.
现在我想使用Docker将它部署到Linux服务器.
我创建了Docker文件:
FROM microsoft/aspnetcore:2.0
ARG source
WORKDIR /app
EXPOSE 44305
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "Aplication.dll"]
Run Code Online (Sandbox Code Playgroud)
之后运行命令:
dotnet build -o obj/Docker/publish -c Release
dotnet publish -o obj/Docker/publish -c Release
docker build -t testapi-api .
docker run -p 44305:80 --name api testapi-api
Run Code Online (Sandbox Code Playgroud)
最后一个命令run我得到下一个错误:
An assembly specified in the application dependencies manifest (Aplication.deps.json) was not found:
package: 'Microsoft.AspNetCore.Antiforgery', version: '2.0.0-preview1-final'
path: 'lib/netcoreapp2.0/Microsoft.AspNetCore.Antiforgery.dll'
This assembly was expected to be in the local runtime store as the …Run Code Online (Sandbox Code Playgroud) 我是C#的新手,我在枚举方面遇到了一些麻烦.
我有Enum定义如下:
public enum CustomFields
{
[Display(Name = "first_name")]
FirstName = 1,
[Display(Name = "last_name")]
LastName = 2,
}
Run Code Online (Sandbox Code Playgroud)
我需要的是将检查显示名称是否存在的代码,如果是,则返回枚举值.
如果我有显示名称:
var name = "first_name";
Run Code Online (Sandbox Code Playgroud)
我需要这样的东西:
var name = "first_name";
CustomFields.getEnumValue(name);
Run Code Online (Sandbox Code Playgroud)
这应该返回:
CustomFields.FirstName;
Run Code Online (Sandbox Code Playgroud) 我有wordpress插件,注册设置如下:
register_settings("myplugin_settings","myplugin_option1");
Run Code Online (Sandbox Code Playgroud)
并在插件激活它添加选项,如:
add_option("myplugin_option1","");
Run Code Online (Sandbox Code Playgroud)
然后,如果我更新选项,如:
update_option("myplugin_option1","something else");
Run Code Online (Sandbox Code Playgroud)
然后尝试从数据库中获取它:
$myoption = get_option("myplugin_option1");
Run Code Online (Sandbox Code Playgroud)
get_option()返回false,偶数选项存在且值更新.
我知道值已更新并且存在选项,因为当我运行查询以获取选项时,我获得了值:
global $wpdb;
$query = 'SELECT * FROM wp_options WHERE option_name = "myplugin_option1";
$result = $wpdb->get_results($query);
Run Code Online (Sandbox Code Playgroud)
这回报了我的价值:"别的东西"
例如这段代码:
$option = get_option("myplugin_option1");
if(false == $option){
global $wpdb;
$query = 'SELECT * FROM wp_options WHERE option_name = "myplugin_option1"';
$result = $wpdb->get_results($query);
}
Run Code Online (Sandbox Code Playgroud)
执行此代码后,$ result将包含值:
Array
(
[0] => stdClass Object
(
[option_id] => 11752
[option_name] => myplugin_option1
[option_value] => something else
[autoload] => yes
)
)
Run Code Online (Sandbox Code Playgroud)
因此选项存在并且具有值,但get_option()返回false.
我有这个问题只有3个选项,只在我的插件安装的一个网站上.有没有人知道为什么get_option()返回false,即使选项在数据库中,并且值为"其他".
我想要减少图像尺寸的功能.
该函数应该采用图像URL,检查图像是4MB大小还是更大,如果是,则将其调整为爱人然后4MB并返回字节.
我有下一个方法:
public byte[] ResizeImage(string url)
{
var uri = new Uri(url);
var c = new WebClient();
var oldImgStream = new MemoryStream(c.DownloadData(uri));
if (oldImgStream.Length <= 4194304)
{
return oldImgStream.ToArray();
}
using (var oldImage = new Bitmap(oldImgStream))
using (var newImageStream = new MemoryStream())
{
var format = oldImage.RawFormat;
float resizePercent = (float)4194304 / oldImgStream.Length;
var newImage = ResizeImageByPercent(oldImage, resizePercent);
newImage.Save(newImageStream, format);
return newImageStream.ToArray();
}
}
public static Bitmap ResizeImageByPercent(Bitmap image, float resizePercent)
{
//Set minimum resizePercentage to 80%
resizePercent = …Run Code Online (Sandbox Code Playgroud) 在 phpmanual 的文档中它说:
默认情况下未启用 PHP 中的 Zlib 支持。您将需要配置 PHP --with-zlib[=DIR]
PHP 的 Windows 版本内置了对此扩展的支持。您无需加载任何其他扩展即可使用这些功能。
所以正如它所说的那样,它应该只在 Windows 版本的 PHP 中默认启用。
但是我从存储库在我的 linux 机器上安装了 PHP 和 Apache,然后我注意到它已经启用。使用了这些命令:
sudo apt-get install apache2
sudo apt-get install php5 php-pear
Run Code Online (Sandbox Code Playgroud)
这是否意味着如果您从存储库安装 PHP,它也会默认启用?
此外,我尝试从源代码安装 PHP,而不添加--with-zlib[=DIR]配置,只是为了检查是否zlib支持。根据 phpmanual 上的文档,它不应该。
我不是编译专家,所以我找到了从源代码安装 php 的教程,然后我做了以下步骤:
apt-get install libxml2-dev
apt-get install build-essential
wget http://in1.php.net/distributions/php-5.3.28.tar.bz
tar -xvjf php-5.3.28.tar.bz
cd php-5.3.28
./configure --prefix /usr/local/php5
------ I configure it without --with-zlib[=DIR] ---------
make
make test
make install
Run Code Online (Sandbox Code Playgroud)
最后我运行这一行让它与 apache 一起工作:
apt-get install …Run Code Online (Sandbox Code Playgroud) 我的问题是Pinterest访问令牌到期了吗?
我在Pinterest官方文档后获取访问令牌:
获取授权码:
https://developers.pinterest.com/docs/api/overview/#getting-your-authorization-code
https://api.pinterest.com/oauth/?
response_type=code&
redirect_uri=https://mywebsite.com/connect/pinterest/&
client_id=12345&
scope=read_public,write_public&
state=768uyFys
Run Code Online (Sandbox Code Playgroud)
并获取访问令牌:
https://developers.pinterest.com/docs/api/overview/#getting-your-access-token
https://api.pinterest.com/v1/oauth/token?
grant_type=authorization_code&
client_id=12345&
client_secret=6789abcd&
code=xyz1010
Run Code Online (Sandbox Code Playgroud)
实际的回应是:
{
"access_token": "AfISUq75NELGEECEurmvEcIwlQZDFFBOnAdsa",
"token_type": "bearer",
"scope": [
"read_public",
"write_public",
"read_private",
"write_private",
"read_write_all"
]
}
Run Code Online (Sandbox Code Playgroud)
我在Pinterest文档中找不到有关令牌过期的任何内容,并且不会在响应中返回到期日期.
根据这个问题,Pinterest会返回过期的令牌
我可以看到这个人正在使用API v3端点:https: //api.pinterest.com/v3/oauth/code_exchange/
作为回应,他正在进入expires_at战场
在pinterest文档中我找不到关于API versinos V2或V3的任何信息,
所有文档Pinterest API都与API V1有关.
对此有何帮助?
我有简单的正则表达式,可以在文本中找到一些单词:
var patern = new RegExp("\bsomething\b", "gi");
Run Code Online (Sandbox Code Playgroud)
匹配文本中带有空格或标点符号的单词。
所以它匹配:
I have something.
Run Code Online (Sandbox Code Playgroud)
但不匹配:
I havesomething.
Run Code Online (Sandbox Code Playgroud)
什么很好,正是我需要的。
但是我有例如阿拉伯语言的问题。如果我有正则表达式:
var patern = new RegExp("\b?????\b", "gi");
Run Code Online (Sandbox Code Playgroud)
和文字:
????? ??? ??? ?????? ???? ???? ??? ??? ??? ???
Run Code Online (Sandbox Code Playgroud)
我要查找的关键字在文本的末尾。
但这是行不通的,只是找不到。
如果我\b从正则表达式中删除它会起作用:
var patern = new RegExp("?????", "gi");
Run Code Online (Sandbox Code Playgroud)
但这就是我想要的,因为如果它是另一个单词的一部分,例如上面的英语示例,我不想找到它:
I havesomething.
Run Code Online (Sandbox Code Playgroud)
因此,我对正则表达式的了解真的很少,是否有人可以帮助我使用英语和阿拉伯语等语言来工作。
我是mysql的新手,我需要一些帮助.
我的数据库中有10个表.
在他们身上被命名为"hibernate",架构就像这样
列"实体"包含数据库中其他表的名称.
我需要的是查询,它会为每个表返回一行,包含3列:
像这样:
如果它可以为每个"hibernate"表执行并从"entity"列中获取TableName并获取该TableName的MaxId并返回如上图所示的行并使用"next_hi"也会很棒
编辑:
如果通过从"hibernate"表中读取表名来实现这一点,那么如果我可以使用在Query中使用的表名,那么它也会有所帮助.
我有一个例子,我为一个表"帐户":
SELECT
hibernate.entity as TableName,
hibernate.next_hi,
MAX(Account.Id) as MaxId
From Account
INNER JOIN hibernate
ON "Account"=hibernate.entity;
Run Code Online (Sandbox Code Playgroud)
但现在我不知道如何修改此查询以返回多个表.
在我的数据库中,我有20个表.
其中一个名为"Connections"的表包含两列"TableName"和"NextHi"
+--------+-------------+
| NextHi | TableName |
+--------+-------------+
| 43 | Page |
+--------+-------------+
| 32 | User |
+--------+-------------+
Run Code Online (Sandbox Code Playgroud)
所以在"TableName"列中是其他表的名称.
彼此表有列"Id"
我需要的是脚本将循环通过数据库中的所有表,前面的表返回一行3列:
所以结果应该是这样的:
+-----------+-------------+-------+
| TableName | NextHi | MaxId |
+-----------+-------------+-------+
| Page | 43 | 435 |
+-----------+-------------+-------+
| User | 32 | 768 |
+-----------+-------------+-------+
Run Code Online (Sandbox Code Playgroud)
我有脚本,它返回给我,但它有每个表的选择,表名称是硬编码的:
(
SELECT
"User" as `TableName`,
`Connections`.`NextHi`,
(SELECT MAX(`Id`) FROM `User`) as `MaxId`
FROM `Connections`
WHERE `Connections`.`TableName` = "User"
)
UNION ALL (
SELECT
"Page" …Run Code Online (Sandbox Code Playgroud) 我是C#的新手,所以我不太了解它.我想反序列化json对象,但我遇到了一些问题.
这是json对象:
var json = "[{
"idSite":"1",
"visitorId":"a393fed00271f588",
"actionDetails":[{
"type":"action",
"url":"http:\/\/mysite.info\/test-24\/",
"customVariables":{
"1":{
"customVariablePageName1":"URL",
"customVariablePageValue1":"http:\/\/mysite.info\/p"
}
},
"timeSpent":"78",
}]
}]";
Run Code Online (Sandbox Code Playgroud)
我试图以这种方式反序列化它:
var visits = JsonConvert.DeserializeObject<VisitorDetails[]>(json);
public class VisitorDetails
{
public string idSite { get; set; }
public string visitorId { get; set; }
public List<ActionDetail> actionDetails { get; set; }
}
public class ActionDetail
{
public string type { get; set; }
public string url { get; set; }
public string timeSpent { get; set; }
public object customVariables { …Run Code Online (Sandbox Code Playgroud) 我有与FB API发布到Facebook组的问题.
所以我通过权限验证了用户身份:
email,
publish_pages,
publish_actions,
public_profile,
manage_pages,
read_insights,
user_managed_groups
Run Code Online (Sandbox Code Playgroud)
我获得了访问令牌,然后将其交换为长期访问令牌,然后我将其用于发布到FB Group.
所以我在调用API:
GET /v2.5/{group-id}/feed
Run Code Online (Sandbox Code Playgroud)
使用post的下一个参数:
parameters["message"]
parameters["caption"]
parameters["description"]
parameters["link"]
parameters["name"]
parameters["picture"]
Run Code Online (Sandbox Code Playgroud)
Post发布到FB组,但只有使用Access令牌的用户才能看到它.其他成员看不到帖子,但是在发布帖子时他们收到了通知.所以他们得到了通知,但当他们点击通知时没有帖子.我正在使用的访问令牌的用户是该组的管理员,只有他才能看到该帖子,甚至其他管理员也看不到帖子.
也尝试发送这些参数:
parameters["is_hidden"] = false
parameters["is_published"] = true
Run Code Online (Sandbox Code Playgroud)
但结果是一样的.
有谁知道发生了什么.
选项"发布批准:所有组帖子必须由管理员批准".未经检查,因此管理员无需批准帖子.
c# ×4
mysql ×3
api ×2
php ×2
sql ×2
apache ×1
arabic ×1
asp.net-core ×1
asp.net-mvc ×1
bitmap ×1
docker ×1
dockerfile ×1
enums ×1
facebook ×1
image ×1
javascript ×1
json ×1
linux ×1
memorystream ×1
oauth-2.0 ×1
pinterest ×1
regex ×1
ubuntu ×1
wordpress ×1
zlib ×1