NotSupportedException thrown when instantiating a DataContext on wp8 - c#

I'm currently using VS2012 Express, writing in C#, and targeting WP8. My testing is being done with the emulator.
I've been following the example here: http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202860(v=vs.105).aspx#BKMK_UsingtheDatabase
My problem is, every time I try to instantiate a DataContext object (well, my derived class) I get a NotSupportedException in System.Data.Linq.ni.dll. The line throwing the exception is the constructor calling base(ConnectionString).
Any idea what I'm doing wrong, or how I can get more information to help me sort this out?

Apparently db files can only use SDF extensions. When I modified the name of my data file to use .SDF, everything worked fine.

Related

Relational-specific methods can only be used when the context is using a relational database provider?

I've encountered this exception when trying to call DbContext.Database.Migrate.
Looks like this is not very common on the net (or Google has some trouble searching it?). The only possible cause I could find is due to in-memory database or some kind of provider that is not relational?
But when debugging, I can see that the provider name is Oracle.EntityFrameworkCore, I'm using Oracle.EntityFrameworkCore 2.19.30 (to connect to an Oracle Database). So this is confusing now, I'm not sure what's wrong here.
The code is simple like this:
_dbContext.Database.Migrate();
I think the exception thrown is very confusing. I had to look into the source code for RelationalDatabaseFacadeExtensions.GetRelationalService via which I can see somehow the TService is not loaded. That service type may be contained in some dll (the most possible one is Microsoft.EntityFrameworkCore.Relational.dll, if that dll is not loaded correctly, it will throw the described exception.
Actually in my case, that dll is loaded with wrong version (2.2.4.0 is loaded whereas the Microsoft.EntityFrameworkCore version is 2.2.6.0). All this happened while I try to load them dynamically (not tightly referencing them in projects).

How to fix 'JsonSerializerSettings' fail to access field 'DefaultContext'

Since I pull my project from GitHub and attempt to run my app the problem keep happening when it refers to Json.net when trying to serialize anything. Originally it was at version 11 when the error showed up, then I tried to downgrade to version 8 and it still persists. So, I upgrade to latest on 12.0.1 but the problem still not going away
The code is nothing but Newtonsoft.Json.JsonConvert.SerializeObject(data)
And no matter what type of data it is it always thrown
FieldAccessException: Attempt by method
'Newtonsoft.Json.JsonSerializerSettings..cctor()' to access field
'Newtonsoft.Json.JsonSerializerSettings.DefaultContext' failed.
I even tried to construct the JsonSerializerSettings on my own and that still happens.
Will this answer help you?
Basically, in order to workaround this problem you need to make sure "Enable the Visual Studio hosting process" is unchecked in your project's settings under Debug.
This error may occur if the code is running under partial trust. Following link can help more in providing error description:
https://learn.microsoft.com/en-us/dotnet/api/system.methodaccessexception?redirectedfrom=MSDN&view=netframework-4.7.2
Previously, I have encountered this error if the code has restricted access like private, protected or internal methods. As per MSDN:
This exception is thrown in situations such as the following:
A private, protected, or internal method that would not be accessible from normal compiled code is accessed from partially
trusted code by using reflection.
A security-critical method is accessed from transparent code.
The access level of a method in a class library has changed, and one or more assemblies that reference the library have not been
recompiled.

SqlConnection exception thrown by WPF but not by WebSite?

I have this project, which consists of a WCF Library acting as a Server for a Trouble Ticket system.
Link for solution skeleton: http://imgur.com/eZqe5Q8
I have an interface that allows me to access the server methods.
I have a DB as you can see in the picture, called "MainDB".
I have a website with a service reference to the server which works perfectly fine.
Then I needed to create a GUI application client that accesses the same server interface. I did this by creating a WPF application. I reference the server, just the same as I did in the website and use the same interface, and I call the exact same method, in this case the Login method, which you can check in this image: http://imgur.com/3PajH3U
But when I call this method from the WPF I get an exception on the red squared line which says this:
"An unhandled exception of type 'System.NullReferenceException' occurred in TTService.dll
Additional information: Object reference not set to an instance of an object."
I thought it might be because of the DB not being "published", but it was. I run the website and the WPF at the same time and one runs perfectly smooth while the other causes that exception. I can't get what's causing this, probably because I'm still not experienced in this technology.
The fact that the origin of the method call is different doesn't seem to me like a plausible cause because I can't understand how the method would know where the call originated.
I'm sorry I can't put the images in the post but not enough reputation yet.
Thank you for any help.
I fixed this. It actually was the Interface implementation that was wrong. Sorry for the misinformation.

Use of Forest.GetCurrentForest in RODC environment

I've got a problem with using Forest.GetCurrentForest() method when communicating with a Read-only domain controller.
The exception thrown is:
System.DirectoryServices.ActiveDirectory.ActiveDirectoryServerDownException: The server is not operational.
Note: Everything works fine when communicating with a RWDC.
Previously, to fix other issues when communicating with a RODC, we had to modify the way we created DirectoryEntry objects, making use of the AuthenticationType.ReadOnlyServer flag. However I've seen (using reflector) that the GetCurrentForest() method creates its own DirectoryEntry object using a Utils class, which in turn uses a DefaultAuthType.
So, my question is: Does anyone know how to set/modify the DefaultAuthType so that it can return the required authentication type? Is there a better way to do this? The aim of this piece of code is simply to get the list of available domains visible to the server.
Thanks,
Ben
Well, doesn't seem like there's an easy answer to this. In the end we rewrote the code to not use the Domain/Forest objects...
What I do to "overcome" this issue was, I first try to get the Forest.GetCurrentForest(), and if exception thrown, I then use Domain.GetComputerDomain() for last solution, of cause, the list now only contain the domain that the web server joined.

db4o How to rename class via configuration

I am using db4o in two seperate projects that share the same classes but not the same .dll . I am fixing this so that they share the same .dll but I need to rename the classes. According to the documentation you set up configuration and open the db with the renames and it updates everything. I have tried this but when I try to open the DB the project just hangs. Am I missing something here
config.Common.ObjectClass("DllName.Old, DllName")
.Rename("NewDll.New, NewDll");
var db = Db4oEmbedded.OpenFile(config, DBFile);
That looks correct to me and should work. It really should work when the class-names and assembly names are correct. The class is not a generic class, right?
You don't get any exception, right? Is db4o just hanging or actually doing some work?
Edit: I could reproduce a stack-overflow exception with renaming a class. Maybe you are running into a stack overflow exception as well, but you cancel it before it actually happens?
Anyway, I created a bug-entry in the db4o-bugtracker.
I was successful with the following answer:
https://stackoverflow.com/a/1138178/541420
Very buggy otherwise though :(

Categories

Resources