我正在用 c# 做一个应用程序。
我收到错误:
值不能为空。参数名称:读取嵌入文件的 contentxs 时的流
在代码中
Stream strm = Asm.GetManifestResourceStream(Asm.GetName().Name + "." + Name);
Run Code Online (Sandbox Code Playgroud)
如何解决这个错误?
我们有一个新的应用程序需要自动部署到许多服务器.我需要知道Puppet是否可以用于以下场景.
应用程序
该应用程序是.NET和PHP与SQL Server或PostGRE数据库的组合.首次启动应用程序时,使用Entity Framework在C#中处理数据库迁移.该应用程序尚未完成,但我正在进行可行性研究以自动部署.
构建和持续集成
我们在云中使用Team Foundation Service(TFS)进行构建.
目标环境
该应用程序将安装在云端和客户端的基础架构中.云平台将由我们控制,所以我想这并不困难.我可以看到Puppet用于配置该环境的好处.
但是,当客户端的基础架构托管服务器时,我可能无法控制对服务器的访问.我必须假设服务器只能访问端口443(和80,但我不会以这种方式更新软件).我想我们将拥有管理员访问我们需要安装的任何服务器,我更关心的是通过企业防火墙访问服务器.
这些环境将是用于.NET Web和数据库服务器的Server 2008(IIS7),也可能是运行Apache for PHP的Linux服务器.由于应用程序尚未完成,我无法确定PHP限制是什么.我假设我将不得不部署到两种不同类型的服务器.
部署环境
将部署一个服务器来编排部署.可以在这里安装Puppet /任何其他技术.
期望的过程
请原谅我在这里大量使用Puppet.我不确定其开箱即用的局限性,我很欣赏有一个Forge,其中有很多插件可供使用.这种自动化水平对我来说是新的,所以我很乐意对我的步骤采取反馈!
假设
我在Symfony 2.3中使用FOSFacebookBundle,正如它在与FOSUserBundle文档的集成中所说的那样.编辑security.yml,运行代码,但我收到错误:
Warning: SessionHandler::write(): Parent session handler is not open in /var/www/my/app/cache/dev/classes.php line 407
Run Code Online (Sandbox Code Playgroud)
所以我给了权限:
sudo chmod 777 -R app/cache
sudo chmod 777 -R app/logs
Run Code Online (Sandbox Code Playgroud)
当我再次登录,然后注销页面时,我得到了同样的错误.
我看到这个https://github.com/symfony/symfony/issues/5868并更新了php.
但是这个问题没解决我不知道为什么?有谁知道请告诉我?
security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
chain_provider:
chain:
providers: [fos_userbundle, my_fos_facebook_provider]
fos_userbundle:
id: fos_user.user_provider.username
my_fos_facebook_provider:
id: my.facebook.user
firewalls:
main:
pattern: ^/
fos_facebook:
app_url: "http://apps.facebook.com/xxxx/"
server_url: "http://symfony/app_dev.php/login"
login_path: /login
check_path: /loginFb
default_target_path: /
provider: my_fos_facebook_provider
form_login:
login_path: /login
check_path: /login_check
provider: fos_userbundle …Run Code Online (Sandbox Code Playgroud) 我正在开始一个将与Facebook大量整合的副项目.我将在前端使用React,它将与使用asp.net core web api制作的REST进行对话.
我的想法是,在这个API中,我将调用Facebook.基本上,我想:登录,从Messenger发送/发布消息,从业务页面获取/发布评论和消息.
我google了一点,并没有找到很多资源或如何进行除Facebook文档以外的集成的示例,这有很多东西,我不知道在哪里看.
我也发现了这个适用于.NET的SDK,但它看起来有点过时https://github.com/facebook-csharp-sdk/facebook-csharp-sdk和
所以,我的问题是:阅读文档是否真的是最好的解决方案?
如果有人至少可以给我一个提示去哪里,我会非常感激.与c#/ asp.net之外的其他堆栈集成Facebook会更好/更容易吗?
此外,如果有任何其他API,SDK或已经在.NET中构建的东西可以帮助我,我将不胜感激.
提前致谢.
We were using .Net Core 1 and we migrated to Preview 2 (both with Entity).
Before migration, we used to set a default value for a boolean in Entity Framework like this:
modelBuilder.Entity<Customer>()
.ToTable("Customer")
.Property(a => a.Active)
.HasDefaultValue(true);
Run Code Online (Sandbox Code Playgroud)
After migration, we didn't change anything but now we are getting an error when entity tries to create this table. It looks like it is trying to create a default value as string like "True" and not as a bit, like before. …
我在我的数据模型中实现了一些每个类型的表继承(基本上有一个BaseEntity类型,包含我的项目的所有基本信息和Employer从BaseEntity项目继承的类型).一切似乎都是正确设置的,当使用实体时(通过ADO.net数据服务或通过Linq到实体)我可以看到Employer类型和事情看起来没问题.当我创建一个新Employer实体并尝试保存它时,问题就开始了.
在看起来不是.AddToEmployer项目的上下文中(仅和/ AddObject或AddToBaseEntity).
如果我使用AddObject("Employer", NewEmployer)我得到和错误消息:
找不到EntitySet名称'DataEntities.Employer'.
如果我使用,AddToBaseEntity(NewEmployer)我会收到以下错误消息:
无法确定相关操作的有效排序.由于外键约束,模型要求orstore生成的值可能存在依赖关系.
我是否错过了设置继承的步骤?是否有一些特定的方法来保存继承的对象?我究竟做错了什么?我认为基本问题是我应该有一个AddToEmployer,我需要做些什么来暴露它?看起来很奇怪它不是一个选项,因为我可以在客户端看到雇主类型并且可以执行以下操作:
var NewEmployer = new Employer() - 这似乎表明我可以看到雇主类型罚款.
.net inheritance entity-framework savechanges table-per-type
我正在使用asp.net mvc 3和.net framework 4.0与C#
假设我有NivoSlider(滑块)html代码.它还有js,css和图像文件.
我想使用NivoSlider cshtml代码和js/css/images作为"项目",我想将它添加到不同的MVC解决方案中.它将成为一个插件.
我无法将其视为部分视图,因为我必须将所有css,js和imges文件移动到新的解决方案中.我看了"mvc区域",但它没有渲染我的js和css文件(事实上;使用"区域"并不是一个完美的方式,因为你知道)...我查找了一些基于插件的架构,但没有 - 他们很容易实现.我的时间有限.
那么我该如何解决这个问题呢?
编辑:我可以使用这个http://razorgenerator.codeplex.com/ - 但如果你提出一个想法,我正在寻找另一种解决方案......
我希望使用WithMappings.FromMatchingInterface约定将实现特定接口的所有类注册到Unity中.另外,我希望使用接口拦截行为拦截所有已注册的对象.问题是Unity还注册了具体类之间的映射,当这些类被解析时,会抛出一个异常消息:
"[类型]不可拦截"
我意识到使用具体类类型解析对象不是最佳实践,但我想知道为什么Unity会自动为接口添加映射 - >具体类以及具体类 - >按惯例注册时的具体类?这意味着如果添加接口拦截器并使用具体类型解析它将永远不会工作.
我希望得到的结果是Unity在按惯例注册并给它一个接口拦截器时没有添加具体类型 - >具体类型映射,这样我们就可以使用它的具体类型来解析类,如果我们愿意,我们只是没有拦截.
我不想使用VirtualMethodInterceptor因为我不想对类进行更改以便拦截工作,这包括继承MarshalByRef.我还想避免单独注册所有对象.
因此,我的问题是,如何按惯例注册时只注册接口映射?
更新:单独注册类会产生相同的问题,因此假设一旦对象使用interfaceinterceptor注册,则无法通过使用具体类型来解析它.
新注册码:
container.RegisterType<ISomeService, SomeService>(new InjectionMember[]
{
new Interceptor<InterfaceInterceptor>(),
new InterceptionBehavior<TraceInterceptor>()
});
container.RegisterType<ISomeRepository, SomeRepository>(new InjectionMember[]
{
new Interceptor<InterfaceInterceptor>(),
new InterceptionBehavior<TraceInterceptor>()
});
Run Code Online (Sandbox Code Playgroud)
更新2为所有接口添加默认拦截器似乎工作,虽然这个解决方案相当hacky.该解决方案在按惯例进行标准注册之前需要一些代码,并且InterfaceInterceptor在基于约定的注册中删除.
预注册代码
foreach (var type in types)
{
container
.Configure<Interception>()
.SetDefaultInterceptorFor(type.GetInterface("I" + type.Name), new InterfaceInterceptor());
}
Run Code Online (Sandbox Code Playgroud)
一些解释困境的代码:
using Microsoft.Practices.Unity;
using Microsoft.Practices.Unity.InterceptionExtension;
using System;
using System.Diagnostics;
using System.Linq;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{ …Run Code Online (Sandbox Code Playgroud) 我正在使用IdentityServer4并使用ASP.NET身份,并且想要进行自定义密码验证,以便我可以为密码过期添加验证(例如,如果密码超过90天,则让用户更改密码等. ).
我在Startup.cs 的方法中.AddPasswordValidator<>设置时遇到了该方法,但是无法找到有关如何实现它的任何明确文档.services.AddIdentityConfigureServices()
任何人都可以帮助实现或指向一些类似的示例代码吗?(或者可能有助于了解我在哪里/如何使用IdentityServer4实现用户/密码的自定义验证)?
我有一个里面有很长字符串的 flex 项目,我希望它被包裹起来。但它不起作用。
flex 1 1 500px例如,我设置了 ( flex-basis = 500px) 并且它应该用word wrap: break-word
但它没有,只有当我设置时width=500px,它才开始工作,所以问题是为什么flex-basis 500px不工作而宽度工作?
HTML:
<div class="map-detail-wrapper">
<div class="ad-detail-text">
<span>{{ad.text}}</span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
.map-detail-wrapper {
display: flex;
flex-wrap: wrap;
}
.ad-detail-text {
flex: 1 1 0%;
width: 500px;
line-height: 20px;
font-size: 14px;
margin: 20px;
border: black;
word-wrap: break-word;
overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud) 我在Visual Studio 2017(工具版本0.41)中使用docker-compose 来构建两个图像,一个ASP.NET Core API容器和一个PostgreSQL容器.我运行了Docker-Compose项目,一切正常 - 我可以从Api容器访问数据库.
我现在想要更改PostgreSQL环境变量POSTGRES_USER,POSTGRES_PASSWORD并POSTGRES_DB改为如下所示的新值:
泊坞窗,compose.yml:
services:
mcodatabase:
image: mcodatabase
build:
context: ./Data
dockerfile: Dockerfile
restart: always
ports:
- 5432:5432
environment:
POSTGRES_USER: mcodevuser
POSTGRES_PASSWORD: password
POSTGRES_DB: mcodev
volumes:
- postgresdata:/var/lib/postgresql/data
networks:
- mconetwork
mcoapi:
image: mcoapi
build:
context: ./Mco.Api
dockerfile: Dockerfile
ports:
- 56107:80
links:
- mcodatabase
depends_on:
- "mcodatabase"
networks:
- mconetwork
volumes:
postgresdata:
networks:
mconetwork:
driver: bridge
Run Code Online (Sandbox Code Playgroud)
但是,据我所知,图像已经创建.我想再次开始使用数据库映像mcodatabase.
这是我的图片:
c:\Projects\v4>docker images
REPOSITORY TAG IMAGE …Run Code Online (Sandbox Code Playgroud) c# ×5
.net ×3
asp.net ×2
asp.net-core ×1
asp.net-mvc ×1
css ×1
docker ×1
facebook ×1
flexbox ×1
inheritance ×1
php ×1
plugins ×1
puppet ×1
savechanges ×1
session ×1
symfony ×1
tfs ×1
validation ×1