Comments (10)
Ouch, that's nasty. Thanks for reporting this, I'll see what I can do to fix it up. It wasn't getting hit before because if the cert was empty (which is the vast majority of the cases) it never tried to clear the handler, but if someone had tried to use this function on Mono, it would have crashed the same way.
from consuldotnet.
It feels a little hackish, but simply wrapping the certificate operations in a catch NotImplementedException block works.
from consuldotnet.
I think that's what I will have to do. Out of curiosity are you using the Nuget package or compiling?
I was thinking of adding a conditional [Obsolete] attributes to the property for Mono to prevent use and just make the setter/getter do nothing under mono with a runtime check but that doesn't help if you are using the precompiled binaries.
from consuldotnet.
Actually I can just propagate the exception to the setter in the config object so it fails if you try to set it explicitly only, and skip trying to reconfigure the handler if running on mono. Seems fairly clean to me.
from consuldotnet.
This is fixed - the tests now run successfully under Mono on Linux.
It does feel a bit hackish but it should at least throw a useful PlatformUnsupportedException
if you try to set client certs under Mono, and not try to set them in the event handler if under Mono. I've cut a package as 0.6.4.5.
from consuldotnet.
I was using the NuGet package. I'm still getting a NotImplementedException
with 0.6.4.5. I'll investigate some more, as there was some weirdness with downloading the packages, but it did also fail on travis-ci
from consuldotnet.
Hm, I can't get Travis set up right now because while I maintain this repo I don't actually have admin on it.
What's interesting here is I'm able to repro the error if I make a new project with the nuget package attached, which makes sense because the nuget package was compiled on VS2015 but if I run the tests it's compiled on Mono, which IFDEFs this out.
I shall continue to investigate.
from consuldotnet.
It is because the runtime check is backwards:
https://github.com/PlayFab/consuldotnet/blob/0.6.4.5/Consul/Client.cs#L47
Should be: return Type.GetType("Mono.Runtime") == null;
from consuldotnet.
So, for CI, this is an interesting challenge. I use #if
to cut the offending code out on Mono entirely so you can't even set it, but only if compiled under Mono. However, this means that tests pass perfectly well if compiled on Mono but would break if the Nuget package (compiled with MSBuild) is used. What a weird scenario, and I definitely would not have caught this particular issue if I'd just compiled under Mono on Travis, though I would have caught the original issue.
This is now actually fixed under 0.6.4.6. Sorry about that!
from consuldotnet.
Yes, that's got it! My Travis build is green :) Thanks for the fix.
It's definitely an odd case. Using the NuGet package is so convenient, though!
from consuldotnet.
Related Issues (20)
- Consul.ConsulRequestException: Unexpected response, status code InternalServerError: rpc error making call: EOF HOT 4
- No way to read ServiceMeta
- ConsulConfigurationException throw if URL scheme specified in CONSUL_HTTP_ADDR environment variable. HOT 1
- Latest version is not available in Nuget HOT 2
- Add Meta dictionary to AgentService and AgentServiceRegistration HOT 1
- Does not work on netcoreapp2.1 HOT 5
- Enable HttpClientHandler pooling? HOT 2
- KV Txn call may deadlock HOT 3
- Grpc heartbeat HOT 2
- Support for Consul Connect? HOT 1
- 0.9 Port Status
- No .Net Framework 4.0 compatibility HOT 1
- Filter Service and Health by multi tags
- I hope to support the heartbeat of grpc
- Agent.ServiceRegister hangs after KV.Get with new QueryOptions {WaitIndex = index}
- Aquire Lock custom KV value
- Service status
- Bad request : Invalid wait time and multiple Get request while trying to acquire leader HOT 2
- Cluster support
- Add consul.dll.xml into the NuGet package
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from consuldotnet.